* [REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate
[not found] <87lih2h6i4.fsf@xmission.com>
@ 2012-08-26 0:05 ` Eric W. Biederman
2012-09-13 1:31 ` Dave Airlie
0 siblings, 1 reply; 4+ messages in thread
From: Eric W. Biederman @ 2012-08-26 0:05 UTC (permalink / raw)
To: linux-kernel
Cc: netdev, linux-fsdevel, Serge E. Hallyn, David Miller,
David Airlie, dri-devel
Blink Blink this had not been converted to use struct pid ages ago?
- On drm open capture the openers kuid and struct pid.
- On drm close release the kuid and struct pid
- When reporting the uid and pid convert the kuid and struct pid
into values in the appropriate namespace.
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel@lists.freedesktop.org
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
drivers/gpu/drm/drm_fops.c | 3 ++-
drivers/gpu/drm/drm_info.c | 5 +++--
drivers/gpu/drm/drm_ioctl.c | 4 ++--
include/drm/drmP.h | 4 ++--
init/Kconfig | 1 -
5 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
index 5062eec..433d2fa 100644
--- a/drivers/gpu/drm/drm_fops.c
+++ b/drivers/gpu/drm/drm_fops.c
@@ -251,7 +251,7 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
filp->private_data = priv;
priv->filp = filp;
priv->uid = current_euid();
- priv->pid = task_pid_nr(current);
+ priv->pid = get_pid(task_pid(current));
priv->minor = idr_find(&drm_minors_idr, minor_id);
priv->ioctl_count = 0;
/* for compatibility root is always authenticated */
@@ -524,6 +524,7 @@ int drm_release(struct inode *inode, struct file *filp)
if (drm_core_check_feature(dev, DRIVER_PRIME))
drm_prime_destroy_file_private(&file_priv->prime);
+ put_pid(file_priv->pid);
kfree(file_priv);
/* ========================================================
diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
index 8928edb..eb0af39 100644
--- a/drivers/gpu/drm/drm_info.c
+++ b/drivers/gpu/drm/drm_info.c
@@ -191,8 +191,9 @@ int drm_clients_info(struct seq_file *m, void *data)
seq_printf(m, "%c %3d %5d %5d %10u %10lu\n",
priv->authenticated ? 'y' : 'n',
priv->minor->index,
- priv->pid,
- priv->uid, priv->magic, priv->ioctl_count);
+ pid_vnr(priv->pid),
+ from_kuid_munged(seq_user_ns(m), priv->uid),
+ priv->magic, priv->ioctl_count);
}
mutex_unlock(&dev->struct_mutex);
return 0;
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index 64a62c6..39a4383 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -215,8 +215,8 @@ int drm_getclient(struct drm_device *dev, void *data,
list_for_each_entry(pt, &dev->filelist, lhead) {
if (i++ >= idx) {
client->auth = pt->authenticated;
- client->pid = pt->pid;
- client->uid = pt->uid;
+ client->pid = pid_vnr(pt->pid);
+ client->uid = from_kuid_munged(current_user_ns(), pt->uid);
client->magic = pt->magic;
client->iocs = pt->ioctl_count;
mutex_unlock(&dev->struct_mutex);
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index d6b67bb..9bc5c6a 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -426,8 +426,8 @@ struct drm_prime_file_private {
/** File private data */
struct drm_file {
int authenticated;
- pid_t pid;
- uid_t uid;
+ struct pid *pid;
+ kuid_t uid;
drm_magic_t magic;
unsigned long ioctl_count;
struct list_head lhead;
diff --git a/init/Kconfig b/init/Kconfig
index d849ba2..2a388e5 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -930,7 +930,6 @@ config UIDGID_CONVERTED
depends on FS_POSIX_ACL = n
depends on QUOTA = n
depends on QUOTACTL = n
- depends on DRM = n
# Networking
depends on NET_9P = n
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate
2012-08-26 0:05 ` [REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate Eric W. Biederman
@ 2012-09-13 1:31 ` Dave Airlie
2012-09-13 2:14 ` Eric W. Biederman
0 siblings, 1 reply; 4+ messages in thread
From: Dave Airlie @ 2012-09-13 1:31 UTC (permalink / raw)
To: Eric W. Biederman
Cc: linux-kernel, netdev, linux-fsdevel, Serge E. Hallyn,
David Miller, David Airlie, dri-devel
> Blink Blink this had not been converted to use struct pid ages ago?
>
> - On drm open capture the openers kuid and struct pid.
> - On drm close release the kuid and struct pid
> - When reporting the uid and pid convert the kuid and struct pid
> into values in the appropriate namespace.
>
Hi Eric,
I'm fine with this seems okay, do you want me to merge it via drm-next?
Dave.
> Cc: David Airlie <airlied@linux.ie>
> Cc: dri-devel@lists.freedesktop.org
> Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
> ---
> drivers/gpu/drm/drm_fops.c | 3 ++-
> drivers/gpu/drm/drm_info.c | 5 +++--
> drivers/gpu/drm/drm_ioctl.c | 4 ++--
> include/drm/drmP.h | 4 ++--
> init/Kconfig | 1 -
> 5 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
> index 5062eec..433d2fa 100644
> --- a/drivers/gpu/drm/drm_fops.c
> +++ b/drivers/gpu/drm/drm_fops.c
> @@ -251,7 +251,7 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
> filp->private_data = priv;
> priv->filp = filp;
> priv->uid = current_euid();
> - priv->pid = task_pid_nr(current);
> + priv->pid = get_pid(task_pid(current));
> priv->minor = idr_find(&drm_minors_idr, minor_id);
> priv->ioctl_count = 0;
> /* for compatibility root is always authenticated */
> @@ -524,6 +524,7 @@ int drm_release(struct inode *inode, struct file *filp)
> if (drm_core_check_feature(dev, DRIVER_PRIME))
> drm_prime_destroy_file_private(&file_priv->prime);
>
> + put_pid(file_priv->pid);
> kfree(file_priv);
>
> /* ========================================================
> diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
> index 8928edb..eb0af39 100644
> --- a/drivers/gpu/drm/drm_info.c
> +++ b/drivers/gpu/drm/drm_info.c
> @@ -191,8 +191,9 @@ int drm_clients_info(struct seq_file *m, void *data)
> seq_printf(m, "%c %3d %5d %5d %10u %10lu\n",
> priv->authenticated ? 'y' : 'n',
> priv->minor->index,
> - priv->pid,
> - priv->uid, priv->magic, priv->ioctl_count);
> + pid_vnr(priv->pid),
> + from_kuid_munged(seq_user_ns(m), priv->uid),
> + priv->magic, priv->ioctl_count);
> }
> mutex_unlock(&dev->struct_mutex);
> return 0;
> diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
> index 64a62c6..39a4383 100644
> --- a/drivers/gpu/drm/drm_ioctl.c
> +++ b/drivers/gpu/drm/drm_ioctl.c
> @@ -215,8 +215,8 @@ int drm_getclient(struct drm_device *dev, void *data,
> list_for_each_entry(pt, &dev->filelist, lhead) {
> if (i++ >= idx) {
> client->auth = pt->authenticated;
> - client->pid = pt->pid;
> - client->uid = pt->uid;
> + client->pid = pid_vnr(pt->pid);
> + client->uid = from_kuid_munged(current_user_ns(), pt->uid);
> client->magic = pt->magic;
> client->iocs = pt->ioctl_count;
> mutex_unlock(&dev->struct_mutex);
> diff --git a/include/drm/drmP.h b/include/drm/drmP.h
> index d6b67bb..9bc5c6a 100644
> --- a/include/drm/drmP.h
> +++ b/include/drm/drmP.h
> @@ -426,8 +426,8 @@ struct drm_prime_file_private {
> /** File private data */
> struct drm_file {
> int authenticated;
> - pid_t pid;
> - uid_t uid;
> + struct pid *pid;
> + kuid_t uid;
> drm_magic_t magic;
> unsigned long ioctl_count;
> struct list_head lhead;
> diff --git a/init/Kconfig b/init/Kconfig
> index d849ba2..2a388e5 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -930,7 +930,6 @@ config UIDGID_CONVERTED
> depends on FS_POSIX_ACL = n
> depends on QUOTA = n
> depends on QUOTACTL = n
> - depends on DRM = n
>
> # Networking
> depends on NET_9P = n
> --
> 1.7.5.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate
2012-09-13 1:31 ` Dave Airlie
@ 2012-09-13 2:14 ` Eric W. Biederman
2012-09-13 3:29 ` Dave Airlie
0 siblings, 1 reply; 4+ messages in thread
From: Eric W. Biederman @ 2012-09-13 2:14 UTC (permalink / raw)
To: Dave Airlie
Cc: linux-kernel, netdev, linux-fsdevel, Serge E. Hallyn,
David Miller, David Airlie, dri-devel
Dave Airlie <airlied@gmail.com> writes:
>> Blink Blink this had not been converted to use struct pid ages ago?
>>
>> - On drm open capture the openers kuid and struct pid.
>> - On drm close release the kuid and struct pid
>> - When reporting the uid and pid convert the kuid and struct pid
>> into values in the appropriate namespace.
>>
>
> Hi Eric,
>
> I'm fine with this seems okay, do you want me to merge it via
> drm-next?
My plan is to merge it via my user namespace tree. And since you have
responed positively I will add your acked-by. There are some nice
synergies when I get all of the changes in one tree.
If for some reason you want to carry this in your drm tree we can work
something out.
In this case I expect the change isn't big enough to worry about.
Eric
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate
2012-09-13 2:14 ` Eric W. Biederman
@ 2012-09-13 3:29 ` Dave Airlie
0 siblings, 0 replies; 4+ messages in thread
From: Dave Airlie @ 2012-09-13 3:29 UTC (permalink / raw)
To: Eric W. Biederman
Cc: linux-kernel, netdev, linux-fsdevel, Serge E. Hallyn,
David Miller, David Airlie, dri-devel
On Thu, Sep 13, 2012 at 12:14 PM, Eric W. Biederman
<ebiederm@xmission.com> wrote:
> Dave Airlie <airlied@gmail.com> writes:
>
>>> Blink Blink this had not been converted to use struct pid ages ago?
>>>
>>> - On drm open capture the openers kuid and struct pid.
>>> - On drm close release the kuid and struct pid
>>> - When reporting the uid and pid convert the kuid and struct pid
>>> into values in the appropriate namespace.
>>>
>>
>> Hi Eric,
>>
>> I'm fine with this seems okay, do you want me to merge it via
>> drm-next?
>
> My plan is to merge it via my user namespace tree. And since you have
> responed positively I will add your acked-by. There are some nice
> synergies when I get all of the changes in one tree.
>
> If for some reason you want to carry this in your drm tree we can work
> something out.
>
> In this case I expect the change isn't big enough to worry about.
No all fine by me,
for formality sake:
Acked-by: Dave Airlie <airlied@redhat.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-09-13 3:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <87lih2h6i4.fsf@xmission.com>
2012-08-26 0:05 ` [REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate Eric W. Biederman
2012-09-13 1:31 ` Dave Airlie
2012-09-13 2:14 ` Eric W. Biederman
2012-09-13 3:29 ` Dave Airlie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox