diff options
author | Kars de Jong <jongk@linux-m68k.org> | 2019-11-24 22:52:25 +0300 |
---|---|---|
committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2020-01-12 18:49:20 +0300 |
commit | e8bb2a2a1d51511e6b3f7e08125d52ec73c11139 (patch) | |
tree | 0a99bdc9e0a44185c4f2902054d771e8cfe80147 /arch/m68k/kernel/entry.S | |
parent | 46cf053efec6a3a5f343fead837777efe8252a46 (diff) | |
download | linux-e8bb2a2a1d51511e6b3f7e08125d52ec73c11139.tar.xz |
m68k: Wire up clone3() syscall
Wire up the clone3() syscall for m68k. The special entry point is done in
assembler as was done for clone() as well. This is needed because all
registers need to be saved. The C wrapper then calls the generic
sys_clone3() with the correct arguments.
Tested on A1200 using the simple test program from:
https://lore.kernel.org/lkml/20190716130631.tohj4ub54md25dys@brauner.io/
Signed-off-by: Kars de Jong <jongk@linux-m68k.org>
Link: https://lore.kernel.org/r/20191124195225.31230-1-jongk@linux-m68k.org
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Diffstat (limited to 'arch/m68k/kernel/entry.S')
-rw-r--r-- | arch/m68k/kernel/entry.S | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/m68k/kernel/entry.S b/arch/m68k/kernel/entry.S index 97cd3ea5f10b..9dd76fbb7c6b 100644 --- a/arch/m68k/kernel/entry.S +++ b/arch/m68k/kernel/entry.S @@ -69,6 +69,13 @@ ENTRY(__sys_vfork) lea %sp@(24),%sp rts +ENTRY(__sys_clone3) + SAVE_SWITCH_STACK + pea %sp@(SWITCH_STACK_SIZE) + jbsr m68k_clone3 + lea %sp@(28),%sp + rts + ENTRY(sys_sigreturn) SAVE_SWITCH_STACK movel %sp,%sp@- | switch_stack pointer |