Unverified Commit 0671c5b8 authored by Paul Burton's avatar Paul Burton
Browse files

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
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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)
{
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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