[PATCH] compat: be more consistent about [ug]id_t
Hi all, When I first wrote the compat layer patches, I was somewhat cavalier about the definition of compat_uid_t and compat_gid_t (or maybe I just misunderstood :-)). This patch makes the compat types much more consistent with the types we are being compatible with and hopefully will fix a few bugs along the way. compat type type in compat arch __compat_[ug]id_t __kernel_[ug]id_t __compat_[ug]id32_t __kernel_[ug]id32_t compat_[ug]id_t [ug]id_t The difference is that compat_uid_t is always 32 bits (for the archs we care about) but __compat_uid_t may be 16 bits on some. Signed-off-by: Stephen Rothwell <[EMAIL PROTECTED]> --- arch/mips/kernel/linux32.c | 16 fs/compat.c | 16 include/asm-ia64/compat.h| 20 ++-- include/asm-mips/compat.h| 10 ++ include/asm-parisc/compat.h | 10 ++ include/asm-ppc64/compat.h | 18 ++ include/asm-s390/compat.h| 20 ++-- include/asm-sparc64/compat.h | 18 ++ include/asm-x86_64/compat.h | 20 ++-- include/linux/compat.h |3 +++ ipc/compat.c | 12 ++-- 11 files changed, 87 insertions(+), 76 deletions(-) -- Cheers, Stephen Rothwell[EMAIL PROTECTED] http://www.canb.auug.org.au/~sfr/ diff -ruNp linus/arch/mips/kernel/linux32.c linus-compat_uid_t/arch/mips/kernel/linux32.c --- linus/arch/mips/kernel/linux32.c2005-06-27 16:08:00.0 +1000 +++ linus-compat_uid_t/arch/mips/kernel/linux32.c 2005-06-27 17:40:08.0 +1000 @@ -546,20 +546,20 @@ struct msgbuf32 { s32 mtype; char mtext[ struct ipc_perm32 { key_t key; -compat_uid_t uid; -compat_gid_t gid; -compat_uid_t cuid; -compat_gid_t cgid; +__compat_uid_t uid; +__compat_gid_t gid; +__compat_uid_t cuid; +__compat_gid_t cgid; compat_mode_t mode; unsigned short seq; }; struct ipc64_perm32 { key_t key; - compat_uid_t uid; - compat_gid_t gid; - compat_uid_t cuid; - compat_gid_t cgid; + __compat_uid_t uid; + __compat_gid_t gid; + __compat_uid_t cuid; + __compat_gid_t cgid; compat_mode_t mode; unsigned short seq; unsigned short __pad1; diff -ruNp linus/fs/compat.c linus-compat_uid_t/fs/compat.c --- linus/fs/compat.c 2005-07-13 15:13:18.0 +1000 +++ linus-compat_uid_t/fs/compat.c 2005-07-13 16:26:29.0 +1000 @@ -720,14 +720,14 @@ compat_sys_io_submit(aio_context_t ctx_i struct compat_ncp_mount_data { compat_int_t version; compat_uint_t ncp_fd; - compat_uid_t mounted_uid; + __compat_uid_t mounted_uid; compat_pid_t wdog_pid; unsigned char mounted_vol[NCP_VOLNAME_LEN + 1]; compat_uint_t time_out; compat_uint_t retry_count; compat_uint_t flags; - compat_uid_t uid; - compat_gid_t gid; + __compat_uid_t uid; + __compat_gid_t gid; compat_mode_t file_mode; compat_mode_t dir_mode; }; @@ -784,9 +784,9 @@ static void *do_ncp_super_data_conv(void struct compat_smb_mount_data { compat_int_t version; - compat_uid_t mounted_uid; - compat_uid_t uid; - compat_gid_t gid; + __compat_uid_t mounted_uid; + __compat_uid_t uid; + __compat_gid_t gid; compat_mode_t file_mode; compat_mode_t dir_mode; }; @@ -1808,8 +1808,8 @@ struct compat_nfsctl_export { compat_dev_tex32_dev; compat_ino_tex32_ino; compat_int_tex32_flags; - compat_uid_tex32_anon_uid; - compat_gid_tex32_anon_gid; + __compat_uid_t ex32_anon_uid; + __compat_gid_t ex32_anon_gid; }; struct compat_nfsctl_fdparm { diff -ruNp linus/include/asm-ia64/compat.h linus-compat_uid_t/include/asm-ia64/compat.h --- linus/include/asm-ia64/compat.h 2005-06-27 16:08:06.0 +1000 +++ linus-compat_uid_t/include/asm-ia64/compat.h2005-06-27 17:40:08.0 +1000 @@ -13,10 +13,10 @@ typedef s32 compat_time_t; typedef s32compat_clock_t; typedef s32compat_key_t; typedef s32compat_pid_t; -typedef u16compat_uid_t; -typedef u16compat_gid_t; -typedef u32compat_uid32_t; -typedef u32compat_gid32_t; +typedef u16__compat_uid_t; +typedef u16__compat_gid_t; +typedef u32__compat_uid32_t; +typedef u32__compat_gid32_t; typedef u16compat_mode_t; typedef u32compat_ino_t; typedef u16compat_dev_t; @@ -50,8 +50,8 @@ struct compat_stat { compat_ino_tst_ino; compat_mode_t st_mode; compat_nlink_t st_nlink; - compat_uid_t
[PATCH] compat: be more consistent about [ug]id_t
Hi all, When I first wrote the compat layer patches, I was somewhat cavalier about the definition of compat_uid_t and compat_gid_t (or maybe I just misunderstood :-)). This patch makes the compat types much more consistent with the types we are being compatible with and hopefully will fix a few bugs along the way. compat type type in compat arch __compat_[ug]id_t __kernel_[ug]id_t __compat_[ug]id32_t __kernel_[ug]id32_t compat_[ug]id_t [ug]id_t The difference is that compat_uid_t is always 32 bits (for the archs we care about) but __compat_uid_t may be 16 bits on some. Signed-off-by: Stephen Rothwell [EMAIL PROTECTED] --- arch/mips/kernel/linux32.c | 16 fs/compat.c | 16 include/asm-ia64/compat.h| 20 ++-- include/asm-mips/compat.h| 10 ++ include/asm-parisc/compat.h | 10 ++ include/asm-ppc64/compat.h | 18 ++ include/asm-s390/compat.h| 20 ++-- include/asm-sparc64/compat.h | 18 ++ include/asm-x86_64/compat.h | 20 ++-- include/linux/compat.h |3 +++ ipc/compat.c | 12 ++-- 11 files changed, 87 insertions(+), 76 deletions(-) -- Cheers, Stephen Rothwell[EMAIL PROTECTED] http://www.canb.auug.org.au/~sfr/ diff -ruNp linus/arch/mips/kernel/linux32.c linus-compat_uid_t/arch/mips/kernel/linux32.c --- linus/arch/mips/kernel/linux32.c2005-06-27 16:08:00.0 +1000 +++ linus-compat_uid_t/arch/mips/kernel/linux32.c 2005-06-27 17:40:08.0 +1000 @@ -546,20 +546,20 @@ struct msgbuf32 { s32 mtype; char mtext[ struct ipc_perm32 { key_t key; -compat_uid_t uid; -compat_gid_t gid; -compat_uid_t cuid; -compat_gid_t cgid; +__compat_uid_t uid; +__compat_gid_t gid; +__compat_uid_t cuid; +__compat_gid_t cgid; compat_mode_t mode; unsigned short seq; }; struct ipc64_perm32 { key_t key; - compat_uid_t uid; - compat_gid_t gid; - compat_uid_t cuid; - compat_gid_t cgid; + __compat_uid_t uid; + __compat_gid_t gid; + __compat_uid_t cuid; + __compat_gid_t cgid; compat_mode_t mode; unsigned short seq; unsigned short __pad1; diff -ruNp linus/fs/compat.c linus-compat_uid_t/fs/compat.c --- linus/fs/compat.c 2005-07-13 15:13:18.0 +1000 +++ linus-compat_uid_t/fs/compat.c 2005-07-13 16:26:29.0 +1000 @@ -720,14 +720,14 @@ compat_sys_io_submit(aio_context_t ctx_i struct compat_ncp_mount_data { compat_int_t version; compat_uint_t ncp_fd; - compat_uid_t mounted_uid; + __compat_uid_t mounted_uid; compat_pid_t wdog_pid; unsigned char mounted_vol[NCP_VOLNAME_LEN + 1]; compat_uint_t time_out; compat_uint_t retry_count; compat_uint_t flags; - compat_uid_t uid; - compat_gid_t gid; + __compat_uid_t uid; + __compat_gid_t gid; compat_mode_t file_mode; compat_mode_t dir_mode; }; @@ -784,9 +784,9 @@ static void *do_ncp_super_data_conv(void struct compat_smb_mount_data { compat_int_t version; - compat_uid_t mounted_uid; - compat_uid_t uid; - compat_gid_t gid; + __compat_uid_t mounted_uid; + __compat_uid_t uid; + __compat_gid_t gid; compat_mode_t file_mode; compat_mode_t dir_mode; }; @@ -1808,8 +1808,8 @@ struct compat_nfsctl_export { compat_dev_tex32_dev; compat_ino_tex32_ino; compat_int_tex32_flags; - compat_uid_tex32_anon_uid; - compat_gid_tex32_anon_gid; + __compat_uid_t ex32_anon_uid; + __compat_gid_t ex32_anon_gid; }; struct compat_nfsctl_fdparm { diff -ruNp linus/include/asm-ia64/compat.h linus-compat_uid_t/include/asm-ia64/compat.h --- linus/include/asm-ia64/compat.h 2005-06-27 16:08:06.0 +1000 +++ linus-compat_uid_t/include/asm-ia64/compat.h2005-06-27 17:40:08.0 +1000 @@ -13,10 +13,10 @@ typedef s32 compat_time_t; typedef s32compat_clock_t; typedef s32compat_key_t; typedef s32compat_pid_t; -typedef u16compat_uid_t; -typedef u16compat_gid_t; -typedef u32compat_uid32_t; -typedef u32compat_gid32_t; +typedef u16__compat_uid_t; +typedef u16__compat_gid_t; +typedef u32__compat_uid32_t; +typedef u32__compat_gid32_t; typedef u16compat_mode_t; typedef u32compat_ino_t; typedef u16compat_dev_t; @@ -50,8 +50,8 @@ struct compat_stat { compat_ino_tst_ino; compat_mode_t st_mode; compat_nlink_t st_nlink; - compat_uid_t