[PATCH v2] drm: reduce GETCLIENT to a minimum
Daniel Vetter
daniel at ffwll.ch
Thu Aug 25 14:58:01 UTC 2016
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 at gmail.com>
> ---
> 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
More information about the dri-devel
mailing list