MIPS: VPE: Remove vpe_getuid and vpe_getgid
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 21 Jan 2014 18:28:15 +0000 (10:28 -0800)
committerEric W. Biederman <ebiederm@xmission.com>
Wed, 22 Jan 2014 23:20:46 +0000 (15:20 -0800)
The linux build-bot recently reported a build error in arch/mips/kernel/vpe.c

     tree:   git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git for-linus
     head:   261000a56b6382f597bcb12000f55c9ff26a1efb
     commit: 261000a56b6382f597bcb12000f55c9ff26a1efb [4/4] userns:  userns: Remove UIDGID_STRICT_TYPE_CHECKS
     config: make ARCH=mips maltaaprp_defconfig

     All error/warnings:

        arch/mips/kernel/vpe.c: In function 'vpe_open':
     >> arch/mips/kernel/vpe.c:1086:9: error: incompatible types when assigning to type 'unsigned int' from type 'kuid_t'
     >> arch/mips/kernel/vpe.c:1087:9: error: incompatible types when assigning to type 'unsigned int' from type 'kgid_t'

     vim +1086 arch/mips/kernel/vpe.c

     863abad4 Jesper Juhl   2010-10-30  1080 return -ENOMEM;
     863abad4 Jesper Juhl   2010-10-30  1081   }
     e01402b1 Ralf Baechle  2005-07-14  1082   v->plen = P_SIZE;
     e01402b1 Ralf Baechle  2005-07-14  1083   v->load_addr = NULL;
     e01402b1 Ralf Baechle  2005-07-14  1084   v->len = 0;
     e01402b1 Ralf Baechle  2005-07-14  1085
     d76b0d9b David Howells 2008-11-14 @1086 v->uid = filp->f_cred->fsuid;
     d76b0d9b David Howells 2008-11-14 @1087   v->gid = filp->f_cred->fsgid;
     2600990e Ralf Baechle  2006-04-05  1088
     2600990e Ralf Baechle  2006-04-05  1089 v->cwd[0] = 0;
     2600990e Ralf Baechle  2006-04-05  1090    ret = getcwd(v->cwd, VPE_PATH_MAX);

When examining the code to see what v->uid and v->gid were used for I
discovered that the only users in the kernel are vpe_getuid and
vpe_getgid, and that vpe_getuid and vpe_getgid are never called.

So instead of proposing a conversion to use kuid_t and kgid_t instead
of unsigned int/int as I normally would let's just kill this dead code
so no one has to worry about it further.

Deng-Cheng Zhu said:

This is a good catch. vpe_get[u|g]id was originally used by KSPD which
has been removed.

Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Reviewed-by: Deng-Cheng Zhu <dengcheng.zhu@imgtec.com>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
arch/mips/include/asm/vpe.h
arch/mips/kernel/vpe.c

index c6e1b961537de87706f27b79071b0e5ceae72e6f..0880fe8809b19842a79da37e30aa94997b79c221 100644 (file)
@@ -30,8 +30,6 @@ struct vpe_notifications {
 extern int vpe_notify(int index, struct vpe_notifications *notify);
 
 extern void *vpe_get_shared(int index);
-extern int vpe_getuid(int index);
-extern int vpe_getgid(int index);
 extern char *vpe_getcwd(int index);
 
 #endif /* _ASM_VPE_H */
index 59b2b3cd78852d8d41a16c7d4752cfc6557123a8..2d5c142bad67b0b10b20cd3a102559b056eb845b 100644 (file)
@@ -105,7 +105,6 @@ struct vpe {
        unsigned long len;
        char *pbuffer;
        unsigned long plen;
-       unsigned int uid, gid;
        char cwd[VPE_PATH_MAX];
 
        unsigned long __start;
@@ -1083,9 +1082,6 @@ static int vpe_open(struct inode *inode, struct file *filp)
        v->load_addr = NULL;
        v->len = 0;
 
-       v->uid = filp->f_cred->fsuid;
-       v->gid = filp->f_cred->fsgid;
-
        v->cwd[0] = 0;
        ret = getcwd(v->cwd, VPE_PATH_MAX);
        if (ret < 0)
@@ -1269,30 +1265,6 @@ void *vpe_get_shared(int index)
 
 EXPORT_SYMBOL(vpe_get_shared);
 
-int vpe_getuid(int index)
-{
-       struct vpe *v;
-
-       if ((v = get_vpe(index)) == NULL)
-               return -1;
-
-       return v->uid;
-}
-
-EXPORT_SYMBOL(vpe_getuid);
-
-int vpe_getgid(int index)
-{
-       struct vpe *v;
-
-       if ((v = get_vpe(index)) == NULL)
-               return -1;
-
-       return v->gid;
-}
-
-EXPORT_SYMBOL(vpe_getgid);
-
 int vpe_notify(int index, struct vpe_notifications *notify)
 {
        struct vpe *v;