Skip to content

Commit 0671c5b

Browse files
committed
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/[email protected]/ Signed-off-by: Paul Burton <[email protected]> Cc: Christian Brauner <[email protected]> Acked-by: Christian Brauner <[email protected]> Cc: [email protected]
1 parent 0228ecf commit 0671c5b

File tree

5 files changed

+5
-3
lines changed

5 files changed

+5
-3
lines changed

arch/mips/include/asm/unistd.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
# endif
5353
#define __ARCH_WANT_SYS_FORK
5454
#define __ARCH_WANT_SYS_CLONE
55+
#define __ARCH_WANT_SYS_CLONE3
5556

5657
/* whitelists for checksyscalls */
5758
#define __IGNORE_fadvise64_64

arch/mips/kernel/syscall.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ SYSCALL_DEFINE6(mips_mmap2, unsigned long, addr, unsigned long, len,
8080

8181
save_static_function(sys_fork);
8282
save_static_function(sys_clone);
83+
save_static_function(sys_clone3);
8384

8485
SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
8586
{

arch/mips/kernel/syscalls/syscall_n32.tbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,4 +373,4 @@
373373
432 n32 fsmount sys_fsmount
374374
433 n32 fspick sys_fspick
375375
434 n32 pidfd_open sys_pidfd_open
376-
# 435 reserved for clone3
376+
435 n32 clone3 __sys_clone3

arch/mips/kernel/syscalls/syscall_n64.tbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,4 +349,4 @@
349349
432 n64 fsmount sys_fsmount
350350
433 n64 fspick sys_fspick
351351
434 n64 pidfd_open sys_pidfd_open
352-
# 435 reserved for clone3
352+
435 n64 clone3 __sys_clone3

arch/mips/kernel/syscalls/syscall_o32.tbl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,4 +422,4 @@
422422
432 o32 fsmount sys_fsmount
423423
433 o32 fspick sys_fspick
424424
434 o32 pidfd_open sys_pidfd_open
425-
# 435 reserved for clone3
425+
435 o32 clone3 __sys_clone3

0 commit comments

Comments
 (0)