On Mon, Sep 01, 2025 at 03:09:49PM +0200, Simon Schuster via B4 Relay wrote: > This series adds support for the clone3 system call to the nios2 > architecture. This addresses the build-time warning "warning: clone3()
I did not expect that to happen or matter but fine. > entry point is missing, please fix" introduced in 505d66d1abfb9 > ("clone3: drop __ARCH_WANT_SYS_CLONE3 macro"). The implementation passes > the relevant clone3 tests of kselftest when applied on top of > next-20250815: > > ./run_kselftest.sh > TAP version 13 > 1..4 > # selftests: clone3: clone3 > ok 1 selftests: clone3: clone3 > # selftests: clone3: clone3_clear_sighand > ok 2 selftests: clone3: clone3_clear_sighand > # selftests: clone3: clone3_set_tid > ok 3 selftests: clone3: clone3_set_tid > # selftests: clone3: clone3_cap_checkpoint_restore > ok 4 selftests: clone3: clone3_cap_checkpoint_restore > > The series also includes a small patch to kernel/fork.c that ensures > that clone_flags are passed correctly on architectures where unsigned > long is insufficient to store the u64 clone_flags. It is marked as a fix > for stable backporting. > > As requested, in v2, this series now further tries to correct this type > error throughout the whole code base. Thus, it now touches a larger > number of subsystems and all architectures. I've reworked copy_thread()/copy_thread_tls() a few years ago but I don't remember why I didn't switch to a u64 for them. Probably because only CLONE_VM and CLONE_SETTLS mattered. Thanks for doing that. > Therefore, another test was performed for ARCH=x86_64 (as a > representative for 64-bit architectures). Here, the series builds cleanly > without warnings on defconfig with CONFIG_SECURITY_APPARMOR=y and > CONFIG_SECURITY_TOMOYO=y (to compile-check the LSM-related changes). > The build further successfully passes testing/selftests/clone3 (with the > patch from 20241105062948.1037011-1-zhouyuhang1...@163.com to prepare > clone3_cap_checkpoint_restore for compatibility with the newer libcap > version on my system). > > Is there any option to further preflight check this patch series via > lkp/KernelCI/etc. for a broader test across architectures, or is this > degree of testing sufficient to eventually get the series merged? > > N.B.: The series is not checkpatch clean right now: > - include/linux/cred.h, include/linux/mnt_namespace.h: > function definition arguments without identifier name > - include/trace/events/task.h: > space prohibited after that open parenthesis > > I did not fix these warnings to keep my changes minimal and reviewable, > as the issues persist throughout the files and they were not introduced > by me; I only followed the existing code style and just replaced the > types. If desired, I'd be happy to make the changes in a potential v3, > though. > > Signed-off-by: Simon Schuster <schuster.si...@siemens-energy.com> > --- > Changes in v2: > - Introduce "Fixes:" and "Cc: sta...@vger.kernel.org" where necessary > - Factor out "Fixes:" when adapting the datatype of clone_flags for > easier backports > - Fix additional instances where `unsigned long` clone_flags is used > - Reword commit message to make it clearer that any 32-bit arch is > affected by this bug > - Link to v1: > https://lore.kernel.org/r/20250821-nios2-implement-clone3-v1-0-1bb240173...@siemens-energy.com > > --- > Simon Schuster (4): > copy_sighand: Handle architectures where sizeof(unsigned long) < > sizeof(u64) > copy_process: pass clone_flags as u64 across calltree > arch: copy_thread: pass clone_flags as u64 > nios2: implement architecture-specific portion of sys_clone3 > > arch/alpha/kernel/process.c | 2 +- > arch/arc/kernel/process.c | 2 +- > arch/arm/kernel/process.c | 2 +- > arch/arm64/kernel/process.c | 2 +- > arch/csky/kernel/process.c | 2 +- > arch/hexagon/kernel/process.c | 2 +- > arch/loongarch/kernel/process.c | 2 +- > arch/m68k/kernel/process.c | 2 +- > arch/microblaze/kernel/process.c | 2 +- > arch/mips/kernel/process.c | 2 +- > arch/nios2/include/asm/syscalls.h | 1 + > arch/nios2/include/asm/unistd.h | 2 -- > arch/nios2/kernel/entry.S | 6 ++++++ > arch/nios2/kernel/process.c | 2 +- > arch/nios2/kernel/syscall_table.c | 1 + > arch/openrisc/kernel/process.c | 2 +- > arch/parisc/kernel/process.c | 2 +- > arch/powerpc/kernel/process.c | 2 +- > arch/riscv/kernel/process.c | 2 +- > arch/s390/kernel/process.c | 2 +- > arch/sh/kernel/process_32.c | 2 +- > arch/sparc/kernel/process_32.c | 2 +- > arch/sparc/kernel/process_64.c | 2 +- > arch/um/kernel/process.c | 2 +- > arch/x86/include/asm/fpu/sched.h | 2 +- > arch/x86/include/asm/shstk.h | 4 ++-- > arch/x86/kernel/fpu/core.c | 2 +- > arch/x86/kernel/process.c | 2 +- > arch/x86/kernel/shstk.c | 2 +- > arch/xtensa/kernel/process.c | 2 +- > block/blk-ioc.c | 2 +- > fs/namespace.c | 2 +- > include/linux/cgroup.h | 4 ++-- > include/linux/cred.h | 2 +- > include/linux/iocontext.h | 6 +++--- > include/linux/ipc_namespace.h | 4 ++-- > include/linux/lsm_hook_defs.h | 2 +- > include/linux/mnt_namespace.h | 2 +- > include/linux/nsproxy.h | 2 +- > include/linux/pid_namespace.h | 4 ++-- > include/linux/rseq.h | 4 ++-- > include/linux/sched/task.h | 2 +- > include/linux/security.h | 4 ++-- > include/linux/sem.h | 4 ++-- > include/linux/time_namespace.h | 4 ++-- > include/linux/uprobes.h | 4 ++-- > include/linux/user_events.h | 4 ++-- > include/linux/utsname.h | 4 ++-- > include/net/net_namespace.h | 4 ++-- > include/trace/events/task.h | 6 +++--- > ipc/namespace.c | 2 +- > ipc/sem.c | 2 +- > kernel/cgroup/namespace.c | 2 +- > kernel/cred.c | 2 +- > kernel/events/uprobes.c | 2 +- > kernel/fork.c | 10 +++++----- > kernel/nsproxy.c | 4 ++-- > kernel/pid_namespace.c | 2 +- > kernel/sched/core.c | 4 ++-- > kernel/sched/fair.c | 2 +- > kernel/sched/sched.h | 4 ++-- > kernel/time/namespace.c | 2 +- > kernel/utsname.c | 2 +- > net/core/net_namespace.c | 2 +- > security/apparmor/lsm.c | 2 +- > security/security.c | 2 +- > security/selinux/hooks.c | 2 +- > security/tomoyo/tomoyo.c | 2 +- > 68 files changed, 95 insertions(+), 89 deletions(-) > --- > base-commit: 1357b2649c026b51353c84ddd32bc963e8999603 > change-id: 20250818-nios2-implement-clone3-7f252c20860b > > Best regards, > -- > Simon Schuster <schuster.si...@siemens-energy.com> > >