From: Anton Blanchard - Clean up sys32_getpriority comment. - Add ioprio syscalls, and sign extend 32bit versions. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton --- arch/ppc64/kernel/misc.S | 6 +++++- arch/ppc64/kernel/sys_ppc32.c | 27 +++++++++++++++++---------- include/asm-ppc64/unistd.h | 4 +++- 3 files changed, 25 insertions(+), 12 deletions(-) diff -puN arch/ppc64/kernel/misc.S~ppc64-add-ioprio-syscalls arch/ppc64/kernel/misc.S --- 25/arch/ppc64/kernel/misc.S~ppc64-add-ioprio-syscalls Wed Jul 6 13:38:16 2005 +++ 25-akpm/arch/ppc64/kernel/misc.S Wed Jul 6 13:38:16 2005 @@ -1124,9 +1124,11 @@ _GLOBAL(sys_call_table32) .llong .compat_sys_mq_getsetattr .llong .compat_sys_kexec_load .llong .sys32_add_key - .llong .sys32_request_key + .llong .sys32_request_key /* 270 */ .llong .compat_sys_keyctl .llong .compat_sys_waitid + .llong .sys32_ioprio_set + .llong .sys32_ioprio_get .balign 8 _GLOBAL(sys_call_table) @@ -1403,3 +1405,5 @@ _GLOBAL(sys_call_table) .llong .sys_request_key /* 270 */ .llong .sys_keyctl .llong .sys_waitid + .llong .sys_ioprio_set + .llong .sys_ioprio_get diff -puN arch/ppc64/kernel/sys_ppc32.c~ppc64-add-ioprio-syscalls arch/ppc64/kernel/sys_ppc32.c --- 25/arch/ppc64/kernel/sys_ppc32.c~ppc64-add-ioprio-syscalls Wed Jul 6 13:38:16 2005 +++ 25-akpm/arch/ppc64/kernel/sys_ppc32.c Wed Jul 6 13:38:16 2005 @@ -822,16 +822,6 @@ asmlinkage long sys32_getpgid(u32 pid) } -/* Note: it is necessary to treat which and who as unsigned ints, - * with the corresponding cast to a signed int to insure that the - * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) - * and the register representation of a signed int (msr in 64-bit mode) is performed. - */ -asmlinkage long sys32_getpriority(u32 which, u32 who) -{ - return sys_getpriority((int)which, (int)who); -} - /* Note: it is necessary to treat pid as an unsigned int, * with the corresponding cast to a signed int to insure that the @@ -1023,6 +1013,11 @@ asmlinkage long sys32_setpgid(u32 pid, u return sys_setpgid((int)pid, (int)pgid); } +long sys32_getpriority(u32 which, u32 who) +{ + /* sign extend which and who */ + return sys_getpriority((int)which, (int)who); +} long sys32_setpriority(u32 which, u32 who, u32 niceval) { @@ -1030,6 +1025,18 @@ long sys32_setpriority(u32 which, u32 wh return sys_setpriority((int)which, (int)who, (int)niceval); } +long sys32_ioprio_get(u32 which, u32 who) +{ + /* sign extend which and who */ + return sys_ioprio_get((int)which, (int)who); +} + +long sys32_ioprio_set(u32 which, u32 who, u32 ioprio) +{ + /* sign extend which, who and ioprio */ + return sys_ioprio_set((int)which, (int)who, (int)ioprio); +} + /* Note: it is necessary to treat newmask as an unsigned int, * with the corresponding cast to a signed int to insure that the * proper conversion (sign extension) between the register representation of a signed int (msr in 32-bit mode) diff -puN include/asm-ppc64/unistd.h~ppc64-add-ioprio-syscalls include/asm-ppc64/unistd.h --- 25/include/asm-ppc64/unistd.h~ppc64-add-ioprio-syscalls Wed Jul 6 13:38:16 2005 +++ 25-akpm/include/asm-ppc64/unistd.h Wed Jul 6 13:38:16 2005 @@ -283,8 +283,10 @@ #define __NR_request_key 270 #define __NR_keyctl 271 #define __NR_waitid 272 +#define __NR_ioprio_set 273 +#define __NR_ioprio_get 274 -#define __NR_syscalls 273 +#define __NR_syscalls 275 #ifdef __KERNEL__ #define NR_syscalls __NR_syscalls #endif _