[SPARC]: Fix robust futex syscalls and wire up migrate_pages.
authorDavid S. Miller <davem@davemloft.net>
Mon, 6 Nov 2006 00:51:03 +0000 (16:51 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Nov 2006 00:51:03 +0000 (16:51 -0800)
When I added the entries for the robust futex syscall entries, I
forgot to bump NR_SYSCALLS.  The current situation is error-prone
because NR_SYSCALLS lives in entry.S where the system call limit
checks are enforced.  Move the definition to asm/unistd.h in order to
make this mistake much more difficult to make.

And wire up sys_migrate_pages since the powerpc folks implemented the
compat wrapper for us.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/kernel/entry.S
arch/sparc/kernel/systbls.S
arch/sparc64/kernel/entry.S
arch/sparc64/kernel/systbls.S
include/asm-sparc/unistd.h
include/asm-sparc64/unistd.h

index a4edff4c3be3a9a661a5e80d9d50ee477db8bd23..831f540251f887a55ec40b061905f0f8d07cf944 100644 (file)
 #include <asm/mxcc.h>
 #include <asm/thread_info.h>
 #include <asm/param.h>
+#include <asm/unistd.h>
 
 #include <asm/asmmacro.h>
 
 #define curptr      g6
 
-#define NR_SYSCALLS 300      /* Each OS is different... */
-
 /* These are just handy. */
 #define _SV    save    %sp, -STACKFRAME_SZ, %sp
 #define _RS     restore 
index 10df38eeae085096535a5e31ed9cbbda9dfa35be..ea75ca569052c2b865f9f5bf1cd0831b825905e7 100644 (file)
@@ -78,7 +78,7 @@ sys_call_table:
 /*285*/        .long sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_fstatat64
 /*290*/        .long sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
 /*295*/        .long sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare
-/*300*/        .long sys_set_robust_list, sys_get_robust_list
+/*300*/        .long sys_set_robust_list, sys_get_robust_list, sys_migrate_pages
 
 #ifdef CONFIG_SUNOS_EMUL
        /* Now the SunOS syscall table. */
@@ -190,6 +190,7 @@ sunos_sys_table:
 /*290*/        .long sunos_nosys, sunos_nosys, sunos_nosys
        .long sunos_nosys, sunos_nosys, sunos_nosys
        .long sunos_nosys, sunos_nosys, sunos_nosys
-       .long sunos_nosys, sunos_nosys, sunos_nosys
+       .long sunos_nosys
+/*300*/        .long sunos_nosys, sunos_nosys, sunos_nosys
 
 #endif
index 0aaa35fc5a9c762f343dc35b4be35f92237d0956..6f28bec0a9bf5d4ea8e86806afeb22449099a4c8 100644 (file)
 #include <asm/auxio.h>
 #include <asm/sfafsr.h>
 #include <asm/pil.h>
+#include <asm/unistd.h>
 
 #define curptr      g6
 
-#define NR_SYSCALLS 300      /* Each OS is different... */
-
        .text
        .align          32
 
index 419a63fca1721d784642465767a1510c0559c98c..9a8026797ac04c368db63eab8a43dcf445d2b0a8 100644 (file)
@@ -79,7 +79,7 @@ sys_call_table32:
        .word sys_mkdirat, sys_mknodat, sys_fchownat, compat_sys_futimesat, compat_sys_fstatat64
 /*290*/        .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
        .word sys_fchmodat, sys_faccessat, compat_sys_pselect6, compat_sys_ppoll, sys_unshare
-/*300*/        .word compat_sys_set_robust_list, compat_sys_get_robust_list
+/*300*/        .word compat_sys_set_robust_list, compat_sys_get_robust_list, compat_sys_migrate_pages
 
 #endif /* CONFIG_COMPAT */
 
@@ -149,7 +149,7 @@ sys_call_table:
        .word sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_fstatat64
 /*290*/        .word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
        .word sys_fchmodat, sys_faccessat, sys_pselect6, sys_ppoll, sys_unshare
-/*300*/        .word sys_set_robust_list, sys_get_robust_list
+/*300*/        .word sys_set_robust_list, sys_get_robust_list, sys_migrate_pages
 
 #if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \
     defined(CONFIG_SOLARIS_EMUL_MODULE)
@@ -262,5 +262,7 @@ sunos_sys_table:
 /*290*/        .word sunos_nosys, sunos_nosys, sunos_nosys
        .word sunos_nosys, sunos_nosys, sunos_nosys
        .word sunos_nosys, sunos_nosys, sunos_nosys
-       .word sunos_nosys, sunos_nosys, sunos_nosys
+       .word sunos_nosys
+/*300*/        .word sunos_nosys, sunos_nosys, sunos_nosys
+
 #endif
index c7a495afc82ece5359e811c4e05a670a7b99a35e..f7827fa4cd5e79e5404f63568a3d60ed68d72381 100644 (file)
 #define __NR_unshare           299
 #define __NR_set_robust_list   300
 #define __NR_get_robust_list   301
+#define __NR_migrate_pages     302
+
+#define NR_SYSCALLS            303
 
 #ifdef __KERNEL__
-/* WARNING: You MAY NOT add syscall numbers larger than 301, since
+/* WARNING: You MAY NOT add syscall numbers larger than 302, since
  *          all of the syscall tables in the Sparc kernel are
- *          sized to have 301 entries (starting at zero).  Therefore
- *          find a free slot in the 0-301 range.
+ *          sized to have 302 entries (starting at zero).  Therefore
+ *          find a free slot in the 0-302 range.
  */
 
 #define _syscall0(type,name) \
index 124cf076717f25d8c3edfc1a54caae609cf6147d..63669dad0d72b5d4feae55137d11703791432020 100644 (file)
 #define __NR_unshare           299
 #define __NR_set_robust_list   300
 #define __NR_get_robust_list   301
+#define __NR_migrate_pages     302
+
+#define NR_SYSCALLS            303
 
 #ifdef __KERNEL__
-/* WARNING: You MAY NOT add syscall numbers larger than 301, since
+
+/* WARNING: You MAY NOT add syscall numbers larger than 302, since
  *          all of the syscall tables in the Sparc kernel are
- *          sized to have 301 entries (starting at zero).  Therefore
- *          find a free slot in the 0-301 range.
+ *          sized to have 302 entries (starting at zero).  Therefore
+ *          find a free slot in the 0-302 range.
  */
 
 #define _syscall0(type,name) \