mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 09:44:18 +08:00
mips: add +1 to __NR_syscalls in uapi header
All other architectures are hold a value for __NR_syscalls will be equal to the last system call number +1. But in mips architecture, __NR_syscalls hold the value equal to total number of system exits in the architecture. One of the patch in this patch series will genarate uapi header files. In order to make the implementation common across all architect- ures, add +1 to __NR_syscalls, which will be equal to the last system call number +1. Signed-off-by: Firoz Khan <firoz.khan@linaro.org> Signed-off-by: Paul Burton <paul.burton@mips.com> Cc: linux-mips@vger.kernel.org Cc: Ralf Baechle <ralf@linux-mips.org> Cc: James Hogan <jhogan@kernel.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Philippe Ombredanne <pombredanne@nexb.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Kate Stewart <kstewart@linuxfoundation.org> Cc: y2038@lists.linaro.org Cc: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org Cc: arnd@arndb.de Cc: deepa.kernel@gmail.com Cc: marcin.juszkiewicz@linaro.org
This commit is contained in:
parent
6d92c26815
commit
be856439c9
@ -392,13 +392,13 @@
|
||||
#define __NR_io_pgetevents (__NR_Linux + 368)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define __NR_syscalls 368
|
||||
#define __NR_syscalls 369
|
||||
#endif
|
||||
|
||||
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
|
||||
|
||||
#define __NR_O32_Linux 4000
|
||||
#define __NR_O32_Linux_syscalls 368
|
||||
#define __NR_O32_Linux_syscalls 369
|
||||
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
|
||||
@ -737,13 +737,13 @@
|
||||
#define __NR_io_pgetevents (__NR_Linux + 328)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define __NR_syscalls 328
|
||||
#define __NR_syscalls 329
|
||||
#endif
|
||||
|
||||
#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
|
||||
|
||||
#define __NR_64_Linux 5000
|
||||
#define __NR_64_Linux_syscalls 328
|
||||
#define __NR_64_Linux_syscalls 329
|
||||
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
|
||||
@ -1086,12 +1086,12 @@
|
||||
#define __NR_io_pgetevents (__NR_Linux + 332)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#define __NR_syscalls 332
|
||||
#define __NR_syscalls 333
|
||||
#endif
|
||||
|
||||
#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
|
||||
|
||||
#define __NR_N32_Linux 6000
|
||||
#define __NR_N32_Linux_syscalls 332
|
||||
#define __NR_N32_Linux_syscalls 333
|
||||
|
||||
#endif /* _UAPI_ASM_UNISTD_H */
|
||||
|
@ -410,13 +410,13 @@ unsigned long __init arch_syscall_addr(int nr)
|
||||
unsigned long __init arch_syscall_addr(int nr)
|
||||
{
|
||||
#ifdef CONFIG_MIPS32_N32
|
||||
if (nr >= __NR_N32_Linux && nr <= __NR_N32_Linux + __NR_N32_Linux_syscalls)
|
||||
if (nr >= __NR_N32_Linux && nr < __NR_N32_Linux + __NR_N32_Linux_syscalls)
|
||||
return (unsigned long)sysn32_call_table[nr - __NR_N32_Linux];
|
||||
#endif
|
||||
if (nr >= __NR_64_Linux && nr <= __NR_64_Linux + __NR_64_Linux_syscalls)
|
||||
if (nr >= __NR_64_Linux && nr < __NR_64_Linux + __NR_64_Linux_syscalls)
|
||||
return (unsigned long)sys_call_table[nr - __NR_64_Linux];
|
||||
#ifdef CONFIG_MIPS32_O32
|
||||
if (nr >= __NR_O32_Linux && nr <= __NR_O32_Linux + __NR_O32_Linux_syscalls)
|
||||
if (nr >= __NR_O32_Linux && nr < __NR_O32_Linux + __NR_O32_Linux_syscalls)
|
||||
return (unsigned long)sys32_call_table[nr - __NR_O32_Linux];
|
||||
#endif
|
||||
|
||||
|
@ -86,7 +86,7 @@ loads_done:
|
||||
bnez t0, syscall_trace_entry # -> yes
|
||||
syscall_common:
|
||||
subu v0, v0, __NR_O32_Linux # check syscall number
|
||||
sltiu t0, v0, __NR_O32_Linux_syscalls + 1
|
||||
sltiu t0, v0, __NR_O32_Linux_syscalls
|
||||
beqz t0, illegal_syscall
|
||||
|
||||
sll t0, v0, 2
|
||||
@ -182,7 +182,7 @@ illegal_syscall:
|
||||
|
||||
LEAF(sys_syscall)
|
||||
subu t0, a0, __NR_O32_Linux # check syscall number
|
||||
sltiu v0, t0, __NR_O32_Linux_syscalls + 1
|
||||
sltiu v0, t0, __NR_O32_Linux_syscalls
|
||||
beqz t0, einval # do not recurse
|
||||
sll t1, t0, 2
|
||||
beqz v0, einval
|
||||
|
@ -33,7 +33,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
|
||||
#endif
|
||||
|
||||
dsubu t0, v0, __NR_N32_Linux # check syscall number
|
||||
sltiu t0, t0, __NR_N32_Linux_syscalls + 1
|
||||
sltiu t0, t0, __NR_N32_Linux_syscalls
|
||||
|
||||
#ifndef CONFIG_MIPS32_O32
|
||||
ld t1, PT_EPC(sp) # skip syscall on return
|
||||
@ -87,7 +87,7 @@ n32_syscall_trace_entry:
|
||||
ld a5, PT_R9(sp)
|
||||
|
||||
dsubu t2, v0, __NR_N32_Linux # check (new) syscall number
|
||||
sltiu t0, t2, __NR_N32_Linux_syscalls + 1
|
||||
sltiu t0, t2, __NR_N32_Linux_syscalls
|
||||
beqz t0, not_n32_scall
|
||||
|
||||
j syscall_common
|
||||
|
@ -54,7 +54,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
|
||||
|
||||
syscall_common:
|
||||
dsubu t2, v0, __NR_64_Linux
|
||||
sltiu t0, t2, __NR_64_Linux_syscalls + 1
|
||||
sltiu t0, t2, __NR_64_Linux_syscalls
|
||||
beqz t0, illegal_syscall
|
||||
|
||||
dsll t0, t2, 3 # offset into table
|
||||
|
@ -34,7 +34,7 @@ NESTED(handle_sys, PT_SIZE, sp)
|
||||
ld t1, PT_EPC(sp) # skip syscall on return
|
||||
|
||||
dsubu t0, v0, __NR_O32_Linux # check syscall number
|
||||
sltiu t0, t0, __NR_O32_Linux_syscalls + 1
|
||||
sltiu t0, t0, __NR_O32_Linux_syscalls
|
||||
daddiu t1, 4 # skip to next instruction
|
||||
sd t1, PT_EPC(sp)
|
||||
beqz t0, not_o32_scall
|
||||
@ -144,7 +144,7 @@ trace_a_syscall:
|
||||
ld a7, PT_R11(sp) # For indirect syscalls
|
||||
|
||||
dsubu t0, v0, __NR_O32_Linux # check (new) syscall number
|
||||
sltiu t0, t0, __NR_O32_Linux_syscalls + 1
|
||||
sltiu t0, t0, __NR_O32_Linux_syscalls
|
||||
beqz t0, not_o32_scall
|
||||
|
||||
j syscall_common
|
||||
@ -193,7 +193,7 @@ not_o32_scall:
|
||||
|
||||
LEAF(sys32_syscall)
|
||||
subu t0, a0, __NR_O32_Linux # check syscall number
|
||||
sltiu v0, t0, __NR_O32_Linux_syscalls + 1
|
||||
sltiu v0, t0, __NR_O32_Linux_syscalls
|
||||
beqz t0, einval # do not recurse
|
||||
dsll t1, t0, 3
|
||||
beqz v0, einval
|
||||
|
Loading…
Reference in New Issue
Block a user