Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 202e5979 authored by Stephen Rothwell's avatar Stephen Rothwell Committed by Linus Torvalds
Browse files

[PATCH] compat: be more consistent about [ug]id_t



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: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8dbfc5cf
Loading
Loading
Loading
Loading
+8 −8
Original line number Original line Diff line number Diff line
@@ -546,20 +546,20 @@ struct msgbuf32 { s32 mtype; char mtext[1]; };
struct ipc_perm32
struct ipc_perm32
{
{
	key_t    	  key;
	key_t    	  key;
        compat_uid_t  uid;
        __compat_uid_t  uid;
        compat_gid_t  gid;
        __compat_gid_t  gid;
        compat_uid_t  cuid;
        __compat_uid_t  cuid;
        compat_gid_t  cgid;
        __compat_gid_t  cgid;
        compat_mode_t	mode;
        compat_mode_t	mode;
        unsigned short  seq;
        unsigned short  seq;
};
};


struct ipc64_perm32 {
struct ipc64_perm32 {
	key_t key;
	key_t key;
	compat_uid_t uid;
	__compat_uid_t uid;
	compat_gid_t gid;
	__compat_gid_t gid;
	compat_uid_t cuid;
	__compat_uid_t cuid;
	compat_gid_t cgid;
	__compat_gid_t cgid;
	compat_mode_t	mode;
	compat_mode_t	mode;
	unsigned short	seq;
	unsigned short	seq;
	unsigned short __pad1;
	unsigned short __pad1;
+8 −8
Original line number Original line Diff line number Diff line
@@ -720,14 +720,14 @@ compat_sys_io_submit(aio_context_t ctx_id, int nr, u32 __user *iocb)
struct compat_ncp_mount_data {
struct compat_ncp_mount_data {
	compat_int_t version;
	compat_int_t version;
	compat_uint_t ncp_fd;
	compat_uint_t ncp_fd;
	compat_uid_t mounted_uid;
	__compat_uid_t mounted_uid;
	compat_pid_t wdog_pid;
	compat_pid_t wdog_pid;
	unsigned char mounted_vol[NCP_VOLNAME_LEN + 1];
	unsigned char mounted_vol[NCP_VOLNAME_LEN + 1];
	compat_uint_t time_out;
	compat_uint_t time_out;
	compat_uint_t retry_count;
	compat_uint_t retry_count;
	compat_uint_t flags;
	compat_uint_t flags;
	compat_uid_t uid;
	__compat_uid_t uid;
	compat_gid_t gid;
	__compat_gid_t gid;
	compat_mode_t file_mode;
	compat_mode_t file_mode;
	compat_mode_t dir_mode;
	compat_mode_t dir_mode;
};
};
@@ -784,9 +784,9 @@ static void *do_ncp_super_data_conv(void *raw_data)


struct compat_smb_mount_data {
struct compat_smb_mount_data {
	compat_int_t version;
	compat_int_t version;
	compat_uid_t mounted_uid;
	__compat_uid_t mounted_uid;
	compat_uid_t uid;
	__compat_uid_t uid;
	compat_gid_t gid;
	__compat_gid_t gid;
	compat_mode_t file_mode;
	compat_mode_t file_mode;
	compat_mode_t dir_mode;
	compat_mode_t dir_mode;
};
};
@@ -1808,8 +1808,8 @@ struct compat_nfsctl_export {
	compat_dev_t	ex32_dev;
	compat_dev_t	ex32_dev;
	compat_ino_t	ex32_ino;
	compat_ino_t	ex32_ino;
	compat_int_t	ex32_flags;
	compat_int_t	ex32_flags;
	compat_uid_t	ex32_anon_uid;
	__compat_uid_t	ex32_anon_uid;
	compat_gid_t	ex32_anon_gid;
	__compat_gid_t	ex32_anon_gid;
};
};


struct compat_nfsctl_fdparm {
struct compat_nfsctl_fdparm {
+10 −10
Original line number Original line Diff line number Diff line
@@ -13,10 +13,10 @@ typedef s32 compat_time_t;
typedef s32		compat_clock_t;
typedef s32		compat_clock_t;
typedef s32		compat_key_t;
typedef s32		compat_key_t;
typedef s32		compat_pid_t;
typedef s32		compat_pid_t;
typedef u16		compat_uid_t;
typedef u16		__compat_uid_t;
typedef u16		compat_gid_t;
typedef u16		__compat_gid_t;
typedef u32		compat_uid32_t;
typedef u32		__compat_uid32_t;
typedef u32		compat_gid32_t;
typedef u32		__compat_gid32_t;
typedef u16		compat_mode_t;
typedef u16		compat_mode_t;
typedef u32		compat_ino_t;
typedef u32		compat_ino_t;
typedef u16		compat_dev_t;
typedef u16		compat_dev_t;
@@ -50,8 +50,8 @@ struct compat_stat {
	compat_ino_t	st_ino;
	compat_ino_t	st_ino;
	compat_mode_t	st_mode;
	compat_mode_t	st_mode;
	compat_nlink_t	st_nlink;
	compat_nlink_t	st_nlink;
	compat_uid_t	st_uid;
	__compat_uid_t	st_uid;
	compat_gid_t	st_gid;
	__compat_gid_t	st_gid;
	compat_dev_t	st_rdev;
	compat_dev_t	st_rdev;
	u16		__pad2;
	u16		__pad2;
	u32		st_size;
	u32		st_size;
@@ -120,10 +120,10 @@ typedef u32 compat_sigset_word;


struct compat_ipc64_perm {
struct compat_ipc64_perm {
	compat_key_t key;
	compat_key_t key;
	compat_uid32_t uid;
	__compat_uid32_t uid;
	compat_gid32_t gid;
	__compat_gid32_t gid;
	compat_uid32_t cuid;
	__compat_uid32_t cuid;
	compat_gid32_t cgid;
	__compat_gid32_t cgid;
	unsigned short mode;
	unsigned short mode;
	unsigned short __pad1;
	unsigned short __pad1;
	unsigned short seq;
	unsigned short seq;
+6 −4
Original line number Original line Diff line number Diff line
@@ -15,8 +15,10 @@ typedef s32 compat_clock_t;
typedef s32		compat_suseconds_t;
typedef s32		compat_suseconds_t;


typedef s32		compat_pid_t;
typedef s32		compat_pid_t;
typedef s32		compat_uid_t;
typedef u32		__compat_uid_t;
typedef s32		compat_gid_t;
typedef u32		__compat_gid_t;
typedef u32		__compat_uid32_t;
typedef u32		__compat_gid32_t;
typedef u32		compat_mode_t;
typedef u32		compat_mode_t;
typedef u32		compat_ino_t;
typedef u32		compat_ino_t;
typedef u32		compat_dev_t;
typedef u32		compat_dev_t;
@@ -52,8 +54,8 @@ struct compat_stat {
	compat_ino_t	st_ino;
	compat_ino_t	st_ino;
	compat_mode_t	st_mode;
	compat_mode_t	st_mode;
	compat_nlink_t	st_nlink;
	compat_nlink_t	st_nlink;
	compat_uid_t	st_uid;
	__compat_uid32_t	st_uid;
	compat_gid_t	st_gid;
	__compat_gid32_t	st_gid;
	compat_dev_t	st_rdev;
	compat_dev_t	st_rdev;
	s32		st_pad2[2];
	s32		st_pad2[2];
	compat_off_t	st_size;
	compat_off_t	st_size;
+6 −4
Original line number Original line Diff line number Diff line
@@ -13,8 +13,10 @@ typedef s32 compat_ssize_t;
typedef s32	compat_time_t;
typedef s32	compat_time_t;
typedef s32	compat_clock_t;
typedef s32	compat_clock_t;
typedef s32	compat_pid_t;
typedef s32	compat_pid_t;
typedef u32	compat_uid_t;
typedef u32	__compat_uid_t;
typedef u32	compat_gid_t;
typedef u32	__compat_gid_t;
typedef u32	__compat_uid32_t;
typedef u32	__compat_gid32_t;
typedef u16	compat_mode_t;
typedef u16	compat_mode_t;
typedef u32	compat_ino_t;
typedef u32	compat_ino_t;
typedef u32	compat_dev_t;
typedef u32	compat_dev_t;
@@ -67,8 +69,8 @@ struct compat_stat {
	compat_dev_t		st_realdev;
	compat_dev_t		st_realdev;
	u16			st_basemode;
	u16			st_basemode;
	u16			st_spareshort;
	u16			st_spareshort;
	compat_uid_t		st_uid;
	__compat_uid32_t	st_uid;
	compat_gid_t		st_gid;
	__compat_gid32_t	st_gid;
	u32			st_spare4[3];
	u32			st_spare4[3];
};
};


Loading