mips: add +1 to __NR_syscalls in uapi header
authorFiroz Khan <firoz.khan@linaro.org>
Thu, 13 Dec 2018 09:07:36 +0000 (14:37 +0530)
committerPaul Burton <paul.burton@mips.com>
Fri, 14 Dec 2018 19:19:01 +0000 (11:19 -0800)
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
arch/mips/include/uapi/asm/unistd.h
arch/mips/kernel/ftrace.c
arch/mips/kernel/scall32-o32.S
arch/mips/kernel/scall64-n32.S
arch/mips/kernel/scall64-n64.S
arch/mips/kernel/scall64-o32.S

index c8971956b7046424fdf82477a358e51889143515..cdca8e90d3c85c1409a9d68340b4f98a3fb72164 100644 (file)
 #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
 
 #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
 
 #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 */
index 7f3dfdbc3657e6705b6a797c6e1dfa565fa3bff9..f32caaff92224d223efe7534b67760ef9f9b1e53 100644 (file)
@@ -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
 
index fea6edbf7832c1b5ca61bf4c50685c7282d3b08a..10f636765728458e5785baa0a4af78584d445d4e 100644 (file)
@@ -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
index c65eaacc1abfcf4c15a40721056cf6c3503927ee..646854681ed1cb8e5cf47be10d0e8e712cd65c1c 100644 (file)
@@ -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
index 358d9599983d17840cd909ea7851197e7b38b838..0b67fed0306afbf6dbfdb7db1412b352324c2efd 100644 (file)
@@ -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
index 73913f072e3916f36c23bda86870f83002a725c0..eb53d8eac5e2c2bb5b75d48e30b161dfd5d99a13 100644 (file)
@@ -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