Patch "drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset()" has been added to the 5.7-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset()

to the 5.7-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-vgem-replace-opencoded-version-of-drm_gem_dumb_m.patch
and it can be found in the queue-5.7 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 163648267f5aaf65ecfab783c30f7b4dcc40c301
Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Date:   Wed Jul 8 16:49:11 2020 +0100

    drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset()
    
    [ Upstream commit 119c53d2d4044c59c450c4f5a568d80b9d861856 ]
    
    drm_gem_dumb_map_offset() now exists and does everything
    vgem_gem_dump_map does and *ought* to do.
    
    In particular, vgem_gem_dumb_map() was trying to reject mmapping an
    imported dmabuf by checking the existence of obj->filp. Unfortunately,
    we always allocated an obj->filp, even if unused for an imported dmabuf.
    Instead, the drm_gem_dumb_map_offset(), since commit 90378e589192
    ("drm/gem: drm_gem_dumb_map_offset(): reject dma-buf"), uses the
    obj->import_attach to reject such invalid mmaps.
    
    This prevents vgem from allowing userspace mmapping the dumb handle and
    attempting to incorrectly fault in remote pages belonging to another
    device, where there may not even be a struct page.
    
    v2: Use the default drm_gem_dumb_map_offset() callback
    
    Fixes: af33a9190d02 ("drm/vgem: Enable dmabuf import interfaces")
    Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
    Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
    Cc: <stable@xxxxxxxxxxxxxxx> # v4.13+
    Link: https://patchwork.freedesktop.org/patch/msgid/20200708154911.21236-1-chris@xxxxxxxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
index 909eba43664a2..204d1df5a21d1 100644
--- a/drivers/gpu/drm/vgem/vgem_drv.c
+++ b/drivers/gpu/drm/vgem/vgem_drv.c
@@ -229,32 +229,6 @@ static int vgem_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
 	return 0;
 }
 
-static int vgem_gem_dumb_map(struct drm_file *file, struct drm_device *dev,
-			     uint32_t handle, uint64_t *offset)
-{
-	struct drm_gem_object *obj;
-	int ret;
-
-	obj = drm_gem_object_lookup(file, handle);
-	if (!obj)
-		return -ENOENT;
-
-	if (!obj->filp) {
-		ret = -EINVAL;
-		goto unref;
-	}
-
-	ret = drm_gem_create_mmap_offset(obj);
-	if (ret)
-		goto unref;
-
-	*offset = drm_vma_node_offset_addr(&obj->vma_node);
-unref:
-	drm_gem_object_put_unlocked(obj);
-
-	return ret;
-}
-
 static struct drm_ioctl_desc vgem_ioctls[] = {
 	DRM_IOCTL_DEF_DRV(VGEM_FENCE_ATTACH, vgem_fence_attach_ioctl, DRM_RENDER_ALLOW),
 	DRM_IOCTL_DEF_DRV(VGEM_FENCE_SIGNAL, vgem_fence_signal_ioctl, DRM_RENDER_ALLOW),
@@ -448,7 +422,6 @@ static struct drm_driver vgem_driver = {
 	.fops				= &vgem_driver_fops,
 
 	.dumb_create			= vgem_gem_dumb_create,
-	.dumb_map_offset		= vgem_gem_dumb_map,
 
 	.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
 	.prime_fd_to_handle = drm_gem_prime_fd_to_handle,



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux