Skip to content

Commit c6ac444

Browse files
Simon Schusterbrauner
authored andcommitted
nios2: implement architecture-specific portion of sys_clone3
This commit adds the sys_clone3 entry point for nios2. An architecture-specific wrapper (__sys_clone3) is required to save and restore additional registers to the kernel stack via SAVE_SWITCH_STACK and RESTORE_SWITCH_STACK. Signed-off-by: Simon Schuster <schuster.simon@siemens-energy.com> Link: https://lore.kernel.org/20250901-nios2-implement-clone3-v2-4-53fcf5577d57@siemens-energy.com Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent bbc46b2 commit c6ac444

4 files changed

Lines changed: 8 additions & 2 deletions

File tree

arch/nios2/include/asm/syscalls.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
int sys_cacheflush(unsigned long addr, unsigned long len,
99
unsigned int op);
10+
asmlinkage long __sys_clone3(struct clone_args __user *uargs, size_t size);
1011

1112
#include <asm-generic/syscalls.h>
1213

arch/nios2/include/asm/unistd.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,4 @@
77
#define __ARCH_WANT_STAT64
88
#define __ARCH_WANT_SET_GET_RLIMIT
99

10-
#define __ARCH_BROKEN_SYS_CLONE3
11-
1210
#endif

arch/nios2/kernel/entry.S

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,12 @@ ENTRY(sys_clone)
403403
addi sp, sp, 4
404404
RESTORE_SWITCH_STACK
405405
ret
406+
/* long syscall(SYS_clone3, struct clone_args *cl_args, size_t size); */
407+
ENTRY(__sys_clone3)
408+
SAVE_SWITCH_STACK
409+
call sys_clone3
410+
RESTORE_SWITCH_STACK
411+
ret
406412

407413
ENTRY(sys_rt_sigreturn)
408414
SAVE_SWITCH_STACK

arch/nios2/kernel/syscall_table.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native)
1414

1515
#define sys_mmap2 sys_mmap_pgoff
16+
#define sys_clone3 __sys_clone3
1617

1718
void *sys_call_table[__NR_syscalls] = {
1819
[0 ... __NR_syscalls-1] = sys_ni_syscall,

0 commit comments

Comments
 (0)