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

Commit 59359ff8 authored by David S. Miller's avatar David S. Miller
Browse files

[SPARC]: Fix robust futex syscalls and wire up migrate_pages.



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: default avatarDavid S. Miller <davem@davemloft.net>
parent 10b1fbdb
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -32,13 +32,12 @@
#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 
+3 −2
Original line number Diff line number Diff line
@@ -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
+1 −2
Original line number Diff line number Diff line
@@ -22,11 +22,10 @@
#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

+5 −3
Original line number Diff line number Diff line
@@ -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
+6 −3
Original line number Diff line number Diff line
@@ -318,12 +318,15 @@
#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) \
Loading