[REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate

2012-09-13 Thread Dave Airlie
On Thu, Sep 13, 2012 at 12:14 PM, Eric W. Biederman
 wrote:
> Dave Airlie  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 


[REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate

2012-09-13 Thread Dave Airlie
> 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 
> Cc: dri-devel at lists.freedesktop.org
> Acked-by: Serge Hallyn 
> Signed-off-by: Eric W. Biederman 
> ---
>  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(_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(_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(>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, >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(>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 at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/


Re: [REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate

2012-09-13 Thread Eric W. Biederman
Dave Airlie airl...@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
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate

2012-09-12 Thread Eric W. Biederman
Dave Airlie  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


Re: [REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate

2012-09-12 Thread Dave Airlie
 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 airl...@linux.ie
 Cc: dri-devel@lists.freedesktop.org
 Acked-by: Serge Hallyn serge.hal...@canonical.com
 Signed-off-by: Eric W. Biederman ebied...@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 majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate

2012-09-12 Thread Dave Airlie
On Thu, Sep 13, 2012 at 12:14 PM, Eric W. Biederman
ebied...@xmission.com wrote:
 Dave Airlie airl...@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 airl...@redhat.com
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate

2012-08-26 Thread Eric W. Biederman

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 airl...@linux.ie
Cc: dri-devel@lists.freedesktop.org
Acked-by: Serge Hallyn serge.hal...@canonical.com
Signed-off-by: Eric W. Biederman ebied...@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

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[REVIEW][PATCH 12/15] userns: Convert drm to use kuid and kgid and struct pid where appropriate

2012-08-25 Thread Eric W. Biederman

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 
Cc: dri-devel at lists.freedesktop.org
Acked-by: Serge Hallyn 
Signed-off-by: Eric W. Biederman 
---
 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(_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(_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(>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, >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(>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