diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2019-07-22 22:26:56 +1000 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2019-07-29 09:34:27 +1000 |
commit | cee3536d24a1d5db66b9f68c3ece0af128187ab4 (patch) | |
tree | caeb86d802caa89975cbd86fb1f83ff5ff7fb191 /arch/powerpc/kernel/entry_64.S | |
parent | 609488bc979f99f805f34e9a32c1e3b71179d10b (diff) | |
download | linux-cee3536d24a1d5db66b9f68c3ece0af128187ab4.tar.gz linux-cee3536d24a1d5db66b9f68c3ece0af128187ab4.tar.bz2 linux-cee3536d24a1d5db66b9f68c3ece0af128187ab4.zip |
powerpc: Wire up clone3 syscall
Wire up the new clone3 syscall added in commit 7f192e3cd316 ("fork:
add clone3").
This requires a ppc_clone3 wrapper, in order to save the non-volatile
GPRs before calling into the generic syscall code. Otherwise we hit
the BUG_ON in CHECK_FULL_REGS in copy_thread().
Lightly tested using Christian's test code on a Power8 LE VM.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Acked-by: Christian Brauner <christian@brauner.io>
Link: https://lore.kernel.org/r/20190724140259.23554-1-mpe@ellerman.id.au
Diffstat (limited to 'arch/powerpc/kernel/entry_64.S')
-rw-r--r-- | arch/powerpc/kernel/entry_64.S | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index d9105fcf4021..0a0b5310f54a 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S @@ -487,6 +487,11 @@ _GLOBAL(ppc_clone) bl sys_clone b .Lsyscall_exit +_GLOBAL(ppc_clone3) + bl save_nvgprs + bl sys_clone3 + b .Lsyscall_exit + _GLOBAL(ppc32_swapcontext) bl save_nvgprs bl compat_sys_swapcontext |