On Mon, May 13, 2019 at 03:32:44PM +0100, Steven Price wrote: > panfrost_ioctl_mmap_bo() contains a reimplementation of > drm_gem_dump_map_offset() but with a bug - it allows mapping imported > objects (without going through the exporter). Fix this by switching to > use the generic drm_gem_dump_map_offset() function instead which has the > bonus of simplifying the code. gem_dumb stuff is for kms drivers, panfrost is a render driver. We're generally trying to separate these two worlds somewhat cleanly. I think it'd be good to have a non-dumb version of this in the core, and use that. Or upgrade the dumb version to be that helper for everyone (and drop the _dumb). -Daniel > CC: Alyssa Rosenzweig <alyssa@xxxxxxxxxxxxx> > Signed-off-by: Steven Price <steven.price@xxxxxxx> > --- > drivers/gpu/drm/panfrost/panfrost_drv.c | 16 ++-------------- > 1 file changed, 2 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c > index 94b0819ad50b..d048250ad8ab 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_drv.c > +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c > @@ -254,26 +254,14 @@ static int panfrost_ioctl_mmap_bo(struct drm_device *dev, void *data, > struct drm_file *file_priv) > { > struct drm_panfrost_mmap_bo *args = data; > - struct drm_gem_object *gem_obj; > - int ret; > > if (args->flags != 0) { > DRM_INFO("unknown mmap_bo flags: %d\n", args->flags); > return -EINVAL; > } > > - gem_obj = drm_gem_object_lookup(file_priv, args->handle); > - if (!gem_obj) { > - DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); > - return -ENOENT; > - } > - > - ret = drm_gem_create_mmap_offset(gem_obj); > - if (ret == 0) > - args->offset = drm_vma_node_offset_addr(&gem_obj->vma_node); > - drm_gem_object_put_unlocked(gem_obj); > - > - return ret; > + return drm_gem_dumb_map_offset(file_priv, dev, args->handle, > + &args->offset); > } > > static int panfrost_ioctl_get_bo_offset(struct drm_device *dev, void *data, > -- > 2.20.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel