Commit c6ac444f authored by Simon Schuster's avatar Simon Schuster Committed by Christian Brauner
Browse files

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: default avatarSimon Schuster <schuster.simon@siemens-energy.com>
Link: https://lore.kernel.org/20250901-nios2-implement-clone3-v2-4-53fcf5577d57@siemens-energy.com


Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent bbc46b23
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@

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

#include <asm-generic/syscalls.h>

+0 −2
Original line number Diff line number Diff line
@@ -7,6 +7,4 @@
#define __ARCH_WANT_STAT64
#define __ARCH_WANT_SET_GET_RLIMIT

#define __ARCH_BROKEN_SYS_CLONE3

#endif
+6 −0
Original line number Diff line number Diff line
@@ -403,6 +403,12 @@ ENTRY(sys_clone)
	addi    sp, sp, 4
	RESTORE_SWITCH_STACK
	ret
/* long syscall(SYS_clone3, struct clone_args *cl_args, size_t size); */
ENTRY(__sys_clone3)
	SAVE_SWITCH_STACK
	call	sys_clone3
	RESTORE_SWITCH_STACK
	ret

ENTRY(sys_rt_sigreturn)
	SAVE_SWITCH_STACK
+1 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#define __SYSCALL_WITH_COMPAT(nr, native, compat)        __SYSCALL(nr, native)

#define sys_mmap2 sys_mmap_pgoff
#define sys_clone3 __sys_clone3

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