| From df4aaf015775221dde8a51ee09edb919981f091e Mon Sep 17 00:00:00 2001 |
| From: Dmitry Osipenko <dmitry.osipenko@collabora.com> |
| Date: Thu, 30 Jun 2022 23:00:57 +0300 |
| Subject: drm/shmem-helper: Add missing vunmap on error |
| |
| From: Dmitry Osipenko <dmitry.osipenko@collabora.com> |
| |
| commit df4aaf015775221dde8a51ee09edb919981f091e upstream. |
| |
| 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: stable@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.osipenko@collabora.com> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20220630200058.1883506-2-dmitry.osipenko@collabora.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/gpu/drm/drm_gem_shmem_helper.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- 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(str |
| 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; |
| } |