diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2011-05-27 22:28:27 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-28 13:48:39 -0400 |
commit | 7b21fddd087678a70ad64afc0f632e0f1071b092 (patch) | |
tree | c3ee152ab9b57b6cbc1ee3c6fd495c704ec47f66 /arch/mips | |
parent | 14d74e0cab7a7779a7ff0c3863c04c8a8e507106 (diff) |
ns: Wire up the setns system call
32bit and 64bit on x86 are tested and working. The rest I have looked
at closely and I can't find any problems.
setns is an easy system call to wire up. It just takes two ints so I
don't expect any weird architecture porting problems.
While doing this I have noticed that we have some architectures that are
very slow to get new system calls. cris seems to be the slowest where
the last system calls wired up were preadv and pwritev. avr32 is weird
in that recvmmsg was wired up but never declared in unistd.h. frv is
behind with perf_event_open being the last syscall wired up. On h8300
the last system call wired up was epoll_wait. On m32r the last system
call wired up was fallocate. mn10300 has recvmmsg as the last system
call wired up. The rest seem to at least have syncfs wired up which was
new in the 2.6.39.
v2: Most of the architecture support added by Daniel Lezcano <dlezcano@fr.ibm.com>
v3: ported to v2.6.36-rc4 by: Eric W. Biederman <ebiederm@xmission.com>
v4: Moved wiring up of the system call to another patch
v5: ported to v2.6.39-rc6
v6: rebased onto parisc-next and net-next to avoid syscall conflicts.
v7: ported to Linus's latest post 2.6.39 tree.
> arch/blackfin/include/asm/unistd.h | 3 ++-
> arch/blackfin/mach-common/entry.S | 1 +
Acked-by: Mike Frysinger <vapier@gentoo.org>
Oh - ia64 wiring looks good.
Acked-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/include/asm/unistd.h | 15 | ||||
-rw-r--r-- | arch/mips/kernel/scall32-o32.S | 1 | ||||
-rw-r--r-- | arch/mips/kernel/scall64-64.S | 1 | ||||
-rw-r--r-- | arch/mips/kernel/scall64-n32.S | 1 | ||||
-rw-r--r-- | arch/mips/kernel/scall64-o32.S | 1 |
5 files changed, 13 insertions, 6 deletions
diff --git a/arch/mips/include/asm/unistd.h b/arch/mips/include/asm/unistd.h index fa2e37ea2be1..6fcfc480e9d0 100644 --- a/arch/mips/include/asm/unistd.h +++ b/arch/mips/include/asm/unistd.h | |||
@@ -363,16 +363,17 @@ | |||
363 | #define __NR_open_by_handle_at (__NR_Linux + 340) | 363 | #define __NR_open_by_handle_at (__NR_Linux + 340) |
364 | #define __NR_clock_adjtime (__NR_Linux + 341) | 364 | #define __NR_clock_adjtime (__NR_Linux + 341) |
365 | #define __NR_syncfs (__NR_Linux + 342) | 365 | #define __NR_syncfs (__NR_Linux + 342) |
366 | #define __NR_setns (__NR_Linux + 343) | ||
366 | 367 | ||
367 | /* | 368 | /* |
368 | * Offset of the last Linux o32 flavoured syscall | 369 | * Offset of the last Linux o32 flavoured syscall |
369 | */ | 370 | */ |
370 | #define __NR_Linux_syscalls 342 | 371 | #define __NR_Linux_syscalls 343 |
371 | 372 | ||
372 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ | 373 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ |
373 | 374 | ||
374 | #define __NR_O32_Linux 4000 | 375 | #define __NR_O32_Linux 4000 |
375 | #define __NR_O32_Linux_syscalls 342 | 376 | #define __NR_O32_Linux_syscalls 343 |
376 | 377 | ||
377 | #if _MIPS_SIM == _MIPS_SIM_ABI64 | 378 | #if _MIPS_SIM == _MIPS_SIM_ABI64 |
378 | 379 | ||
@@ -682,16 +683,17 @@ | |||
682 | #define __NR_open_by_handle_at (__NR_Linux + 299) | 683 | #define __NR_open_by_handle_at (__NR_Linux + 299) |
683 | #define __NR_clock_adjtime (__NR_Linux + 300) | 684 | #define __NR_clock_adjtime (__NR_Linux + 300) |
684 | #define __NR_syncfs (__NR_Linux + 301) | 685 | #define __NR_syncfs (__NR_Linux + 301) |
686 | #define __NR_setns (__NR_Linux + 302) | ||
685 | 687 | ||
686 | /* | 688 | /* |
687 | * Offset of the last Linux 64-bit flavoured syscall | 689 | * Offset of the last Linux 64-bit flavoured syscall |
688 | */ | 690 | */ |
689 | #define __NR_Linux_syscalls 301 | 691 | #define __NR_Linux_syscalls 302 |
690 | 692 | ||
691 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ | 693 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ |
692 | 694 | ||
693 | #define __NR_64_Linux 5000 | 695 | #define __NR_64_Linux 5000 |
694 | #define __NR_64_Linux_syscalls 301 | 696 | #define __NR_64_Linux_syscalls 302 |
695 | 697 | ||
696 | #if _MIPS_SIM == _MIPS_SIM_NABI32 | 698 | #if _MIPS_SIM == _MIPS_SIM_NABI32 |
697 | 699 | ||
@@ -1006,16 +1008,17 @@ | |||
1006 | #define __NR_open_by_handle_at (__NR_Linux + 304) | 1008 | #define __NR_open_by_handle_at (__NR_Linux + 304) |
1007 | #define __NR_clock_adjtime (__NR_Linux + 305) | 1009 | #define __NR_clock_adjtime (__NR_Linux + 305) |
1008 | #define __NR_syncfs (__NR_Linux + 306) | 1010 | #define __NR_syncfs (__NR_Linux + 306) |
1011 | #define __NR_setns (__NR_Linux + 307) | ||
1009 | 1012 | ||
1010 | /* | 1013 | /* |
1011 | * Offset of the last N32 flavoured syscall | 1014 | * Offset of the last N32 flavoured syscall |
1012 | */ | 1015 | */ |
1013 | #define __NR_Linux_syscalls 306 | 1016 | #define __NR_Linux_syscalls 307 |
1014 | 1017 | ||
1015 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ | 1018 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ |
1016 | 1019 | ||
1017 | #define __NR_N32_Linux 6000 | 1020 | #define __NR_N32_Linux 6000 |
1018 | #define __NR_N32_Linux_syscalls 306 | 1021 | #define __NR_N32_Linux_syscalls 307 |
1019 | 1022 | ||
1020 | #ifdef __KERNEL__ | 1023 | #ifdef __KERNEL__ |
1021 | 1024 | ||
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index 7a8e1dd7f6f2..99e656e425f3 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
@@ -589,6 +589,7 @@ einval: li v0, -ENOSYS | |||
589 | sys sys_open_by_handle_at 3 /* 4340 */ | 589 | sys sys_open_by_handle_at 3 /* 4340 */ |
590 | sys sys_clock_adjtime 2 | 590 | sys sys_clock_adjtime 2 |
591 | sys sys_syncfs 1 | 591 | sys sys_syncfs 1 |
592 | sys sys_setns 2 | ||
592 | .endm | 593 | .endm |
593 | 594 | ||
594 | /* We pre-compute the number of _instruction_ bytes needed to | 595 | /* We pre-compute the number of _instruction_ bytes needed to |
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S index 2d31c83224f9..fb0575f47f3d 100644 --- a/arch/mips/kernel/scall64-64.S +++ b/arch/mips/kernel/scall64-64.S | |||
@@ -428,4 +428,5 @@ sys_call_table: | |||
428 | PTR sys_open_by_handle_at | 428 | PTR sys_open_by_handle_at |
429 | PTR sys_clock_adjtime /* 5300 */ | 429 | PTR sys_clock_adjtime /* 5300 */ |
430 | PTR sys_syncfs | 430 | PTR sys_syncfs |
431 | PTR sys_setns | ||
431 | .size sys_call_table,.-sys_call_table | 432 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index 38a0503b9a4a..4de0c5534e73 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S | |||
@@ -428,4 +428,5 @@ EXPORT(sysn32_call_table) | |||
428 | PTR sys_open_by_handle_at | 428 | PTR sys_open_by_handle_at |
429 | PTR compat_sys_clock_adjtime /* 6305 */ | 429 | PTR compat_sys_clock_adjtime /* 6305 */ |
430 | PTR sys_syncfs | 430 | PTR sys_syncfs |
431 | PTR sys_setns | ||
431 | .size sysn32_call_table,.-sysn32_call_table | 432 | .size sysn32_call_table,.-sysn32_call_table |
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index 91ea5e4041dd..4a387de08bfa 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S | |||
@@ -546,4 +546,5 @@ sys_call_table: | |||
546 | PTR compat_sys_open_by_handle_at /* 4340 */ | 546 | PTR compat_sys_open_by_handle_at /* 4340 */ |
547 | PTR compat_sys_clock_adjtime | 547 | PTR compat_sys_clock_adjtime |
548 | PTR sys_syncfs | 548 | PTR sys_syncfs |
549 | PTR sys_setns | ||
549 | .size sys_call_table,.-sys_call_table | 550 | .size sys_call_table,.-sys_call_table |