• Christian Brauner's avatar
    arch: handle arches who do not yet define clone3 · d68dbb0c
    Christian Brauner authored
    This cleanly handles arches who do not yet define clone3.
    
    clone3() was initially placed under __ARCH_WANT_SYS_CLONE under the
    assumption that this would cleanly handle all architectures. It does
    not.
    Architectures such as nios2 or h8300 simply take the asm-generic syscall
    definitions and generate their syscall table from it. Since they don't
    define __ARCH_WANT_SYS_CLONE the build would fail complaining about
    sys_clone3 missing. The reason this doesn't happen for legacy clone is
    that nios2 and h8300 provide assembly stubs for sys_clone. This seems to
    be done for architectural reasons.
    
    The build failures for nios2 and h8300 were caught int -next luckily.
    The solution is to define __ARCH_WANT_SYS_CLONE3 that architectures can
    add. Additionally, we need a cond_syscall(clone3) for architectures such
    as nios2 or h8300 that generate their syscall table in the way I
    explained above.
    
    Fixes: 8f3220a8 ("arch: wire-up clone3() syscall")
    Signed-off-by: default avatarChristian Brauner <christian@brauner.io>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Adrian Reber <adrian@lisas.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Florian Weimer <fweimer@redhat.com>
    Cc: linux-api@vger.kernel.org
    Cc: linux-arch@vger.kernel.org
    Cc: x86@kernel.org
    d68dbb0c
fork.c 68.8 KB