[PATCH v5 01/16] drm/msm/dpu: cleanup FB if dpu_format_populate_layout fails

Abhinav Kumar quic_abhinavk at quicinc.com
Fri Jul 12 17:19:38 UTC 2024



On 6/24/2024 2:13 PM, Dmitry Baryshkov wrote:
> If the dpu_format_populate_layout() fails, then FB is prepared, but not
> cleaned up. This ends up leaking the pin_count on the GEM object and
> causes a splat during DRM file closure:
> 
> msm_obj->pin_count
> WARNING: CPU: 2 PID: 569 at drivers/gpu/drm/msm/msm_gem.c:121 update_lru_locked+0xc4/0xcc
> [...]
> Call trace:
>   update_lru_locked+0xc4/0xcc
>   put_pages+0xac/0x100
>   msm_gem_free_object+0x138/0x180
>   drm_gem_object_free+0x1c/0x30
>   drm_gem_object_handle_put_unlocked+0x108/0x10c
>   drm_gem_object_release_handle+0x58/0x70
>   idr_for_each+0x68/0xec
>   drm_gem_release+0x28/0x40
>   drm_file_free+0x174/0x234
>   drm_release+0xb0/0x160
>   __fput+0xc0/0x2c8
>   __fput_sync+0x50/0x5c
>   __arm64_sys_close+0x38/0x7c
>   invoke_syscall+0x48/0x118
>   el0_svc_common.constprop.0+0x40/0xe0
>   do_el0_svc+0x1c/0x28
>   el0_svc+0x4c/0x120
>   el0t_64_sync_handler+0x100/0x12c
>   el0t_64_sync+0x190/0x194
> irq event stamp: 129818
> hardirqs last  enabled at (129817): [<ffffa5f6d953fcc0>] console_unlock+0x118/0x124
> hardirqs last disabled at (129818): [<ffffa5f6da7dcf04>] el1_dbg+0x24/0x8c
> softirqs last  enabled at (129808): [<ffffa5f6d94afc18>] handle_softirqs+0x4c8/0x4e8
> softirqs last disabled at (129785): [<ffffa5f6d94105e4>] __do_softirq+0x14/0x20
> 
> Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support")
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
> ---
>   drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 3 +++
>   1 file changed, 3 insertions(+)
> 

Reviewed-by: Abhinav Kumar <quic_abhinavk at quicinc.com>


More information about the Freedreno mailing list