drivers/gpu/drm/drm_gem.c              |    4 ++--
 drivers/gpu/drm/drm_gem_shmem_helper.c |    1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

New commits:
commit a3cf1e79943c6736107ef9358c5685f97df80185
Merge: 0dbc64716977 36fa1cb56ac5
Author: Kevin Brace <kevinbr...@bracecomputerlab.com>
Date:   Fri Aug 12 16:49:38 2022 -0700

    Merge tag 'drm-next-2022-08-12-1' of git://anongit.freedesktop.org/drm/drm 
into drm-next-5.20
    
    drm fixes for 6.0-rc1
    
    gem:
    - Annotate WW context in error paths
    
    shmem-helper:
    - Add missing vunmap in error paths

commit 36fa1cb56ac5189c78dacbbb14d452d0c44b86c0
Merge: 5493ee1919ea 2939deac1fa2
Author: Dave Airlie <airl...@redhat.com>
Date:   Fri Aug 12 05:57:05 2022 +1000

    Merge tag 'drm-misc-next-fixes-2022-08-10' of 
git://anongit.freedesktop.org/drm/drm-misc into drm-next
    
    Short summary of fixes pull:
    
     * gem: Annotate WW context in error paths
     * shmem-helper: Add missing vunmap in error paths
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>
    
    From: Thomas Zimmermann <tzimmerm...@suse.de>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/YvOLPpufsvOJHiNY@linux-uq9g

commit 2939deac1fa220bc82b89235f146df1d9b52e876
Author: Dmitry Osipenko <dmitry.osipe...@collabora.com>
Date:   Thu Jun 30 23:04:04 2022 +0300

    drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error
    
    Use ww_acquire_fini() in the error code paths. Otherwise lockdep
    thinks that lock is held when lock's memory is freed after the
    drm_gem_lock_reservations() error. The ww_acquire_context needs to be
    annotated as "released", which fixes the noisy "WARNING: held lock freed!"
    splat of VirtIO-GPU driver with CONFIG_DEBUG_MUTEXES=y and enabled lockdep.
    
    Cc: sta...@vger.kernel.org
    Fixes: 7edc3e3b975b5 ("drm: Add helpers for locking an array of BO 
reservations.")
    Reviewed-by: Thomas Hellström <thomas.hellst...@linux.intel.com>
    Reviewed-by: Christian König <christian.koe...@amd.com>
    Signed-off-by: Dmitry Osipenko <dmitry.osipe...@collabora.com>
    Signed-off-by: Daniel Vetter <daniel.vet...@ffwll.ch>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20220630200405.1883897-2-dmitry.osipe...@collabora.com

diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index eb0c2d041f13..86d670c71286 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -1226,7 +1226,7 @@ retry:
                ret = dma_resv_lock_slow_interruptible(obj->resv,
                                                                 acquire_ctx);
                if (ret) {
-                       ww_acquire_done(acquire_ctx);
+                       ww_acquire_fini(acquire_ctx);
                        return ret;
                }
        }
@@ -1251,7 +1251,7 @@ retry:
                                goto retry;
                        }
 
-                       ww_acquire_done(acquire_ctx);
+                       ww_acquire_fini(acquire_ctx);
                        return ret;
                }
        }
commit df4aaf015775221dde8a51ee09edb919981f091e
Author: Dmitry Osipenko <dmitry.osipe...@collabora.com>
Date:   Thu Jun 30 23:00:57 2022 +0300

    drm/shmem-helper: Add missing vunmap on error
    
    The vmapping of dma-buf may succeed, but DRM SHMEM rejects the IOMEM
    mapping, and thus, drm_gem_shmem_vmap_locked() should unvmap the IOMEM
    before erroring out.
    
    Cc: sta...@vger.kernel.org
    Fixes: 49a3f51dfeee ("drm/gem: Use struct dma_buf_map in GEM vmap ops and 
convert GEM backends")
    Signed-off-by: Dmitry Osipenko <dmitry.osipe...@collabora.com>
    Signed-off-by: Daniel Vetter <daniel.vet...@ffwll.ch>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20220630200058.1883506-2-dmitry.osipe...@collabora.com

diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c 
b/drivers/gpu/drm/drm_gem_shmem_helper.c
index 8ad0e02991ca..904fc893c905 100644
--- a/drivers/gpu/drm/drm_gem_shmem_helper.c
+++ b/drivers/gpu/drm/drm_gem_shmem_helper.c
@@ -302,6 +302,7 @@ static int drm_gem_shmem_vmap_locked(struct 
drm_gem_shmem_object *shmem,
                ret = dma_buf_vmap(obj->import_attach->dmabuf, map);
                if (!ret) {
                        if (WARN_ON(map->is_iomem)) {
+                               dma_buf_vunmap(obj->import_attach->dmabuf, map);
                                ret = -EIO;
                                goto err_put_pages;
                        }

Reply via email to