]> git.itanic.dy.fi Git - linux-stable/commit
drm/gem: Fix GEM handle release errors
authorJeffy Chen <jeffy.chen@rock-chips.com>
Fri, 19 Aug 2022 07:28:34 +0000 (15:28 +0800)
committerChristian König <christian.koenig@amd.com>
Fri, 19 Aug 2022 11:38:12 +0000 (13:38 +0200)
commitea2aa97ca37a9044ade001aef71dbc06318e8d44
tree69f8486b2d0426f7321e7a3213091d1aac0944f3
parent258e483a4d5e97a6a8caa74381ddc1f395ac1c71
drm/gem: Fix GEM handle release errors

Currently we are assuming a one to one mapping between dmabuf and
GEM handle when releasing GEM handles.

But that is not always true, since we would create extra handles for the
GEM obj in cases like gem_open() and getfb{,2}().

A similar issue was reported at:
https://lore.kernel.org/all/20211105083308.392156-1-jay.xu@rock-chips.com/

Another problem is that the imported dmabuf might not always have
gem_obj->dma_buf set, which would cause leaks in
drm_gem_remove_prime_handles().

Let's fix these for now by using handle to find the exact map to remove.

Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220819072834.17888-1-jeffy.chen@rock-chips.com
drivers/gpu/drm/drm_gem.c
drivers/gpu/drm/drm_internal.h
drivers/gpu/drm/drm_prime.c