]> www.infradead.org Git - users/jedix/linux-maple.git/commit
clone3: drop __ARCH_WANT_SYS_CLONE3 macro
authorArnd Bergmann <arnd@arndb.de>
Wed, 8 May 2024 15:13:34 +0000 (17:13 +0200)
committerArnd Bergmann <arnd@arndb.de>
Wed, 10 Jul 2024 12:23:38 +0000 (14:23 +0200)
commit505d66d1abfb90853e24ab6cbdf83b611473d6fc
tree3af6512a4ddedb9fe9bba6217ab9621eb8d32a01
parentfbb5c0606fa4506e9085e7a62c9e0098e573ce7a
clone3: drop __ARCH_WANT_SYS_CLONE3 macro

When clone3() was introduced, it was not obvious how each architecture
deals with setting up the stack and keeping the register contents in
a fork()-like system call, so this was left for the architecture
maintainers to implement, with __ARCH_WANT_SYS_CLONE3 defined by those
that already implement it.

Five years later, we still have a few architectures left that are missing
clone3(), and the macro keeps getting in the way as it's fundamentally
different from all the other __ARCH_WANT_SYS_* macros that are meant
to provide backwards-compatibility with applications using older
syscalls that are no longer provided by default.

Address this by reversing the polarity of the macro, adding an
__ARCH_BROKEN_SYS_CLONE3 macro to all architectures that don't
already provide the syscall, and remove __ARCH_WANT_SYS_CLONE3
from all the other ones.

Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
24 files changed:
arch/arc/include/uapi/asm/unistd.h
arch/arm/include/asm/unistd.h
arch/arm64/include/uapi/asm/unistd.h
arch/csky/include/uapi/asm/unistd.h
arch/hexagon/include/uapi/asm/unistd.h
arch/loongarch/include/uapi/asm/unistd.h
arch/m68k/include/asm/unistd.h
arch/mips/include/asm/unistd.h
arch/nios2/include/uapi/asm/unistd.h
arch/openrisc/include/uapi/asm/unistd.h
arch/parisc/include/asm/unistd.h
arch/powerpc/include/asm/unistd.h
arch/riscv/include/uapi/asm/unistd.h
arch/s390/include/asm/unistd.h
arch/sh/include/asm/unistd.h
arch/sparc/include/asm/unistd.h
arch/x86/include/asm/unistd.h
arch/xtensa/include/asm/unistd.h
include/uapi/asm-generic/unistd.h
kernel/fork.c
kernel/sys_ni.c
tools/arch/arm64/include/uapi/asm/unistd.h
tools/arch/loongarch/include/uapi/asm/unistd.h
tools/include/uapi/asm-generic/unistd.h