Files
linux/include/drm
Danilo Krummrich 0c0816d68d drm/gem: fix lockdep check for dma-resv lock
When no custom lock is set to protect a GEMs GPUVA list, lockdep checks
should fall back to the GEM objects dma-resv lock. With the current
implementation we're setting the lock_dep_map of the GEM objects 'resv'
pointer (in case no custom lock_dep_map is set yet) on
drm_gem_private_object_init().

However, the GEM objects 'resv' pointer might still change after
drm_gem_private_object_init() is called, e.g. through
ttm_bo_init_reserved(). This can result in the wrong lock being tracked.

To fix this, call dma_resv_held() directly from
drm_gem_gpuva_assert_lock_held() and fall back to the GEMs lock_dep_map
pointer only if an actual custom lock is set.

Fixes: e6303f323b ("drm: manager to keep track of GPUs VA mappings")
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Danilo Krummrich <dakr@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230804182406.5222-2-dakr@redhat.com
2023-08-04 20:34:31 +02:00
..
2023-01-26 11:52:13 +02:00
2021-07-29 09:12:01 +02:00
2021-08-13 17:50:48 +02:00
2021-11-30 09:41:28 +01:00
2023-05-22 12:23:50 +02:00
2022-06-27 13:45:48 +02:00
2021-10-04 12:06:14 +02:00
2023-06-02 20:05:45 +03:00
2023-02-16 12:29:51 +02:00