Message ID | 20191002185942.295960-1-paul.burton@mips.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 0671c5b84e9e0a6d42d22da9b5d093787ac1c5f3 |
Headers | show |
Series | MIPS: Wire up clone3 syscall | expand |
On Wed, Oct 02, 2019 at 06:59:49PM +0000, Paul Burton wrote: > Wire up the new clone3 syscall for MIPS, using save_static_function() to > generate a wrapper that saves registers $s0-$s7 prior to invoking the > generic sys_clone3 function just like we do for plain old clone. > > Tested atop 64r6el_defconfig using o32, n32 & n64 builds of the simple > test program from: > > https://lore.kernel.org/lkml/20190716130631.tohj4ub54md25dys@brauner.io/ > > Signed-off-by: Paul Burton <paul.burton@mips.com> > Cc: Christian Brauner <christian@brauner.io> Thank you, Paul! Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Hello, Paul Burton wrote: > Wire up the new clone3 syscall for MIPS, using save_static_function() to > generate a wrapper that saves registers $s0-$s7 prior to invoking the > generic sys_clone3 function just like we do for plain old clone. > > Tested atop 64r6el_defconfig using o32, n32 & n64 builds of the simple > test program from: > > https://lore.kernel.org/lkml/20190716130631.tohj4ub54md25dys@brauner.io/ Applied to mips-fixes. > commit 0671c5b84e9e > https://git.kernel.org/mips/c/0671c5b84e9e > > Signed-off-by: Paul Burton <paul.burton@mips.com> > Acked-by: Christian Brauner <christian.brauner@ubuntu.com> Thanks, Paul [ This message was auto-generated; if you believe anything is incorrect then please email paul.burton@mips.com to report it. ]
diff --git a/arch/mips/include/asm/unistd.h b/arch/mips/include/asm/unistd.h index 071053ece677..5d70babfc9ee 100644 --- a/arch/mips/include/asm/unistd.h +++ b/arch/mips/include/asm/unistd.h @@ -52,6 +52,7 @@ # endif #define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_CLONE +#define __ARCH_WANT_SYS_CLONE3 /* whitelists for checksyscalls */ #define __IGNORE_fadvise64_64 diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index b0e25e913bdb..3f16f3823031 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c @@ -80,6 +80,7 @@ SYSCALL_DEFINE6(mips_mmap2, unsigned long, addr, unsigned long, len, save_static_function(sys_fork); save_static_function(sys_clone); +save_static_function(sys_clone3); SYSCALL_DEFINE1(set_thread_area, unsigned long, addr) { diff --git a/arch/mips/kernel/syscalls/syscall_n32.tbl b/arch/mips/kernel/syscalls/syscall_n32.tbl index c9c879ec9b6d..e7c5ab38e403 100644 --- a/arch/mips/kernel/syscalls/syscall_n32.tbl +++ b/arch/mips/kernel/syscalls/syscall_n32.tbl @@ -373,4 +373,4 @@ 432 n32 fsmount sys_fsmount 433 n32 fspick sys_fspick 434 n32 pidfd_open sys_pidfd_open -# 435 reserved for clone3 +435 n32 clone3 __sys_clone3 diff --git a/arch/mips/kernel/syscalls/syscall_n64.tbl b/arch/mips/kernel/syscalls/syscall_n64.tbl index bbce9159caa1..13cd66581f3b 100644 --- a/arch/mips/kernel/syscalls/syscall_n64.tbl +++ b/arch/mips/kernel/syscalls/syscall_n64.tbl @@ -349,4 +349,4 @@ 432 n64 fsmount sys_fsmount 433 n64 fspick sys_fspick 434 n64 pidfd_open sys_pidfd_open -# 435 reserved for clone3 +435 n64 clone3 __sys_clone3 diff --git a/arch/mips/kernel/syscalls/syscall_o32.tbl b/arch/mips/kernel/syscalls/syscall_o32.tbl index 9653591428ec..353539ea4140 100644 --- a/arch/mips/kernel/syscalls/syscall_o32.tbl +++ b/arch/mips/kernel/syscalls/syscall_o32.tbl @@ -422,4 +422,4 @@ 432 o32 fsmount sys_fsmount 433 o32 fspick sys_fspick 434 o32 pidfd_open sys_pidfd_open -# 435 reserved for clone3 +435 o32 clone3 __sys_clone3
Wire up the new clone3 syscall for MIPS, using save_static_function() to generate a wrapper that saves registers $s0-$s7 prior to invoking the generic sys_clone3 function just like we do for plain old clone. Tested atop 64r6el_defconfig using o32, n32 & n64 builds of the simple test program from: https://lore.kernel.org/lkml/20190716130631.tohj4ub54md25dys@brauner.io/ Signed-off-by: Paul Burton <paul.burton@mips.com> Cc: Christian Brauner <christian@brauner.io> --- arch/mips/include/asm/unistd.h | 1 + arch/mips/kernel/syscall.c | 1 + arch/mips/kernel/syscalls/syscall_n32.tbl | 2 +- arch/mips/kernel/syscalls/syscall_n64.tbl | 2 +- arch/mips/kernel/syscalls/syscall_o32.tbl | 2 +- 5 files changed, 5 insertions(+), 3 deletions(-)