Commit 0671c5b8 authored by Paul Burton's avatar Paul Burton

MIPS: Wire up clone3 syscall

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: default avatarPaul Burton <paul.burton@mips.com>
Cc: Christian Brauner <christian@brauner.io>
Acked-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
Cc: linux-mips@vger.kernel.org
parent 0228ecf6
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
# endif # endif
#define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_FORK
#define __ARCH_WANT_SYS_CLONE #define __ARCH_WANT_SYS_CLONE
#define __ARCH_WANT_SYS_CLONE3
/* whitelists for checksyscalls */ /* whitelists for checksyscalls */
#define __IGNORE_fadvise64_64 #define __IGNORE_fadvise64_64
......
...@@ -80,6 +80,7 @@ SYSCALL_DEFINE6(mips_mmap2, unsigned long, addr, unsigned long, len, ...@@ -80,6 +80,7 @@ SYSCALL_DEFINE6(mips_mmap2, unsigned long, addr, unsigned long, len,
save_static_function(sys_fork); save_static_function(sys_fork);
save_static_function(sys_clone); save_static_function(sys_clone);
save_static_function(sys_clone3);
SYSCALL_DEFINE1(set_thread_area, unsigned long, addr) SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
{ {
......
...@@ -373,4 +373,4 @@ ...@@ -373,4 +373,4 @@
432 n32 fsmount sys_fsmount 432 n32 fsmount sys_fsmount
433 n32 fspick sys_fspick 433 n32 fspick sys_fspick
434 n32 pidfd_open sys_pidfd_open 434 n32 pidfd_open sys_pidfd_open
# 435 reserved for clone3 435 n32 clone3 __sys_clone3
...@@ -349,4 +349,4 @@ ...@@ -349,4 +349,4 @@
432 n64 fsmount sys_fsmount 432 n64 fsmount sys_fsmount
433 n64 fspick sys_fspick 433 n64 fspick sys_fspick
434 n64 pidfd_open sys_pidfd_open 434 n64 pidfd_open sys_pidfd_open
# 435 reserved for clone3 435 n64 clone3 __sys_clone3
...@@ -422,4 +422,4 @@ ...@@ -422,4 +422,4 @@
432 o32 fsmount sys_fsmount 432 o32 fsmount sys_fsmount
433 o32 fspick sys_fspick 433 o32 fspick sys_fspick
434 o32 pidfd_open sys_pidfd_open 434 o32 pidfd_open sys_pidfd_open
# 435 reserved for clone3 435 o32 clone3 __sys_clone3
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment