On Thu, Aug 25, 2016 at 04:35:05PM +0200, David Herrmann wrote: > The *only* known user of GETCLIENT is libva, which uses it to check > whether its own context is authenticated. It used to iterate all clients, > look for one that matches its own pid and then check its state. > > The entire purpose for us to still have a GETCLIENT implementation is to > serve libva. So lets not pretend we do anything else: Make this function > return information on the caller's context only, fake the PID to the > caller's pid so they always match, and just fill in the "authenticated" > bit, nothing else. > > This patch reduces the complexity of GETCLIENT to a bare minimum, avoids > any dependency on priv->uid or priv->pid (allows us to get rid of them), > and makes libva happy by always *exactly* returning the information it > wants. > > Signed-off-by: David Herrmann <dh.herrmann@xxxxxxxxx> > --- > v2: Just re-order the series and send individual patches, since they do > not depend on each other. > > drivers/gpu/drm/drm_ioctl.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c > index 33af4a5..bc5c65e 100644 > --- a/drivers/gpu/drm/drm_ioctl.c > +++ b/drivers/gpu/drm/drm_ioctl.c > @@ -189,9 +189,8 @@ static int drm_getclient(struct drm_device *dev, void *data, > */ > if (client->idx == 0) { > client->auth = file_priv->authenticated; > - client->pid = pid_vnr(file_priv->pid); > - client->uid = from_kuid_munged(current_user_ns(), > - file_priv->uid); > + client->pid = task_pid_vnr(current); > + client->uid = overflowuid; > client->magic = 0; > client->iocs = 0; Merged to drm-misc, thanks. -Daniel -- 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