Commit a8c79818 authored by David Herrmann's avatar David Herrmann Committed by Daniel Vetter

drm: reduce GETCLIENT to a minimum

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: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20160825143505.7447-1-dh.herrmann@gmail.com
parent d10571fc
...@@ -189,9 +189,8 @@ static int drm_getclient(struct drm_device *dev, void *data, ...@@ -189,9 +189,8 @@ static int drm_getclient(struct drm_device *dev, void *data,
*/ */
if (client->idx == 0) { if (client->idx == 0) {
client->auth = file_priv->authenticated; client->auth = file_priv->authenticated;
client->pid = pid_vnr(file_priv->pid); client->pid = task_pid_vnr(current);
client->uid = from_kuid_munged(current_user_ns(), client->uid = overflowuid;
file_priv->uid);
client->magic = 0; client->magic = 0;
client->iocs = 0; client->iocs = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment