On Fri, Mar 23, 2018 at 01:45:51PM +0000, Daniel Stone wrote: > Make it a little more clear what's going on inside of getfb, and also > make it easier to add alternate paths to get a handle in future. > > Signed-off-by: Daniel Stone <daniels@xxxxxxxxxxxxx> Much better. Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/drm_framebuffer.c | 33 +++++++++++++++++---------------- > 1 file changed, 17 insertions(+), 16 deletions(-) > > diff --git a/drivers/gpu/drm/drm_framebuffer.c b/drivers/gpu/drm/drm_framebuffer.c > index ad67203de715..6d5ff541225a 100644 > --- a/drivers/gpu/drm/drm_framebuffer.c > +++ b/drivers/gpu/drm/drm_framebuffer.c > @@ -468,29 +468,30 @@ int drm_mode_getfb(struct drm_device *dev, > goto out; > } > > + if (!fb->funcs->create_handle) { > + ret = -ENODEV; > + goto out; > + } > + > r->height = fb->height; > r->width = fb->width; > r->depth = fb->format->depth; > r->bpp = fb->format->cpp[0] * 8; > r->pitch = fb->pitches[0]; > - if (fb->funcs->create_handle) { > - if (drm_is_current_master(file_priv) || capable(CAP_SYS_ADMIN) || > - drm_is_control_client(file_priv)) { > - ret = fb->funcs->create_handle(fb, file_priv, > - &r->handle); > - } else { > - /* GET_FB() is an unprivileged ioctl so we must not > - * return a buffer-handle to non-master processes! For > - * backwards-compatibility reasons, we cannot make > - * GET_FB() privileged, so just return an invalid handle > - * for non-masters. */ > - r->handle = 0; > - ret = 0; > - } > - } else { > - ret = -ENODEV; > + > + /* GET_FB() is an unprivileged ioctl so we must not return a > + * buffer-handle to non-master processes! For > + * backwards-compatibility reasons, we cannot make GET_FB() privileged, > + * so just return an invalid handle for non-masters. */ > + if (!drm_is_current_master(file_priv) && !capable(CAP_SYS_ADMIN) && > + !drm_is_control_client(file_priv)) { > + r->handle = 0; > + ret = 0; > + goto out; > } > > + ret = fb->funcs->create_handle(fb, file_priv, &r->handle); > + > out: > drm_framebuffer_put(fb); > > -- > 2.16.2 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrjälä Intel OTC _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel