• Christian Brauner's avatar
    fork: fold legacy_clone_args_valid() into _do_fork() · 3af8588c
    Christian Brauner authored
    This separate helper only existed to guarantee the mutual exclusivity of
    CLONE_PIDFD and CLONE_PARENT_SETTID for legacy clone since CLONE_PIDFD
    abuses the parent_tid field to return the pidfd. But we can actually handle
    this uniformely thus removing the helper. For legacy clone we can detect
    that CLONE_PIDFD is specified in conjunction with CLONE_PARENT_SETTID
    because they will share the same memory which is invalid and for clone3()
    setting the separate pidfd and parent_tid fields to the same memory is
    bogus as well. So fold that helper directly into _do_fork() by detecting
    this case.
    
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
    Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
    Cc: linux-m68k@lists.linux-m68k.org
    Cc: x86@kernel.org
    Signed-off-by: default avatarChristian Brauner <christian.brauner@ubuntu.com>
    3af8588c
fork.c 74.8 KB