dma_resv lock should be held in both the dma_buf and native GEM case,
so let's just move the dma_resv_assert_held() check out of the !dma-buf
block.

Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com>
Cc: Daniel Vetter <dan...@ffwll.ch>
Cc: Thomas Zimmermann <tzimmerm...@suse.de>
Cc: Emil Velikov <emil.l.veli...@gmail.com>
Cc: Dmitry Osipenko <dmitry.osipe...@collabora.com>
---
 drivers/gpu/drm/drm_gem_shmem_helper.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c 
b/drivers/gpu/drm/drm_gem_shmem_helper.c
index f406556e42e0..2b8a32f6b656 100644
--- a/drivers/gpu/drm/drm_gem_shmem_helper.c
+++ b/drivers/gpu/drm/drm_gem_shmem_helper.c
@@ -288,6 +288,8 @@ int drm_gem_shmem_vmap(struct drm_gem_shmem_object *shmem,
        struct drm_gem_object *obj = &shmem->base;
        int ret = 0;
 
+       dma_resv_assert_held(shmem->base.resv);
+
        if (obj->import_attach) {
                ret = dma_buf_vmap(obj->import_attach->dmabuf, map);
                if (!ret) {
@@ -299,8 +301,6 @@ int drm_gem_shmem_vmap(struct drm_gem_shmem_object *shmem,
        } else {
                pgprot_t prot = PAGE_KERNEL;
 
-               dma_resv_assert_held(shmem->base.resv);
-
                if (shmem->vmap_use_count++ > 0) {
                        iosys_map_set_vaddr(map, shmem->vaddr);
                        return 0;
@@ -354,11 +354,11 @@ void drm_gem_shmem_vunmap(struct drm_gem_shmem_object 
*shmem,
 {
        struct drm_gem_object *obj = &shmem->base;
 
+       dma_resv_assert_held(shmem->base.resv);
+
        if (obj->import_attach) {
                dma_buf_vunmap(obj->import_attach->dmabuf, map);
        } else {
-               dma_resv_assert_held(shmem->base.resv);
-
                if (drm_WARN_ON_ONCE(obj->dev, !shmem->vmap_use_count))
                        return;
 
-- 
2.41.0

Reply via email to