# git rev-parse -q --verify 26bc672134241a080a83b2ab9aa8abede8d30e1c^{commit} 26bc672134241a080a83b2ab9aa8abede8d30e1c already have revision, skipping fetch # git checkout -q -f -B kisskb 26bc672134241a080a83b2ab9aa8abede8d30e1c # git clean -qxdf # < git log -1 # commit 26bc672134241a080a83b2ab9aa8abede8d30e1c # Merge: 7111fa1151e3 fa729c4df558 # Author: Linus Torvalds # Date: Tue Nov 5 09:44:02 2019 -0800 # # Merge tag 'for-linus-2019-11-05' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux # # Pull clone3 stack argument update from Christian Brauner: # "This changes clone3() to do basic stack validation and to set up the # stack depending on whether or not it is growing up or down. # # With clone3() the expectation is now very simply that the .stack # argument points to the lowest address of the stack and that # .stack_size specifies the initial stack size. This is diferent from # legacy clone() where the "stack" argument had to point to the lowest # or highest address of the stack depending on the architecture. # # clone3() was released with 5.3. Currently, it is not documented and # very unclear to userspace how the stack and stack_size argument have # to be passed. After talking to glibc folks we concluded that changing # clone3() to determine stack direction and doing basic validation is # the right course of action. # # Note, this is a potentially user visible change. In the very unlikely # case, that it breaks someone's use-case we will revert. (And then e.g. # place the new behavior under an appropriate flag.) # # Note that passing an empty stack will continue working just as before. # Breaking someone's use-case is very unlikely. Neither glibc nor musl # currently expose a wrapper for clone3(). There is currently also no # real motivation for anyone to use clone3() directly. First, because # using clone{3}() with stacks requires some assembly (see glibc and # musl). Second, because it does not provide features that legacy # clone() doesn't. New features for clone3() will first happen in v5.5 # which is why v5.4 is still a good time to try and make that change now # and backport it to v5.3. # # I did a codesearch on https://codesearch.debian.net, github, and # gitlab and could not find any software currently relying directly on # clone3(). I expect this to change once we land CLONE_CLEAR_SIGHAND # which was a request coming from glibc at which point they'll likely # start using it" # # * tag 'for-linus-2019-11-05' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux: # clone3: validate stack arguments # < /opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux-gcc --version # < /opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux-ld --version # < git log --format=%s --max-count=1 26bc672134241a080a83b2ab9aa8abede8d30e1c # < make -s -j 120 ARCH=sparc64 O=/kisskb/build/linus_sparc64-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- allmodconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_HAVE_FTRACE_MCOUNT_RECORD=n # Added to kconfig CONFIG_SAMPLES=n # Added to kconfig CONFIG_MODULE_SIG=n # yes \n | make -s -j 120 ARCH=sparc64 O=/kisskb/build/linus_sparc64-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- oldconfig yes: standard output: Broken pipe # make -s -j 120 ARCH=sparc64 O=/kisskb/build/linus_sparc64-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- :1511:2: warning: #warning syscall clone3 not implemented [-Wcpp] unrecognized e_machine 18 arch/sparc/vdso/vdso32/vclock_gettime.o arch/sparc/vdso/vdso32/vclock_gettime.o: failed make[3]: *** [/kisskb/src/scripts/Makefile.build:266: arch/sparc/vdso/vdso32/vclock_gettime.o] Error 1 make[3]: *** Deleting file 'arch/sparc/vdso/vdso32/vclock_gettime.o' make[3]: *** Waiting for unfinished jobs.... make[2]: *** [/kisskb/src/scripts/Makefile.build:509: arch/sparc/vdso] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/kisskb/src/Makefile:1649: arch/sparc] Error 2 make[1]: *** Waiting for unfinished jobs.... /kisskb/src/fs/cifs/smb2pdu.c: In function 'SMB2_ioctl_init': /kisskb/src/fs/cifs/smb2pdu.c:2700:19: warning: 'in_data_buf' may be used uninitialized in this function [-Wmaybe-uninitialized] iov[1].iov_base = in_data_buf; ^ /kisskb/src/drivers/input/joystick/analog.c:160:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp] #warning Precise timer not defined for this architecture. ^ In file included from /kisskb/src/include/linux/wait.h:9:0, from /kisskb/src/include/linux/net.h:19, from /kisskb/src/drivers/infiniband/sw/siw/siw_qp_rx.c:8: /kisskb/src/drivers/infiniband/sw/siw/siw_qp_rx.c: In function 'siw_proc_send': /kisskb/src/include/linux/spinlock.h:288:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized] _raw_spin_unlock_irqrestore(lock, flags); \ ^ /kisskb/src/drivers/infiniband/sw/siw/siw_qp_rx.c:335:16: note: 'flags' was declared here unsigned long flags; ^ /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c: In function 'sh_mobile_i2c_isr': /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c:399:26: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] pd->msg->buf[real_pos] = data; ^ /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c:372:16: note: 'data' was declared here unsigned char data; ^ In file included from /kisskb/src/include/linux/rwsem.h:16:0, from /kisskb/src/include/linux/notifier.h:15, from /kisskb/src/include/linux/clk.h:14, from /kisskb/src/drivers/tty/serial/sh-sci.c:24: /kisskb/src/drivers/tty/serial/sh-sci.c: In function 'sci_dma_rx_submit': /kisskb/src/include/linux/spinlock.h:288:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized] _raw_spin_unlock_irqrestore(lock, flags); \ ^ /kisskb/src/drivers/tty/serial/sh-sci.c:1351:16: note: 'flags' was declared here unsigned long flags; ^ /kisskb/src/drivers/watchdog/cpwd.c:500:19: error: 'compat_ptr_ioctl' undeclared here (not in a function) .compat_ioctl = compat_ptr_ioctl, ^ make[3]: *** [/kisskb/src/scripts/Makefile.build:266: drivers/watchdog/cpwd.o] Error 1 make[2]: *** [/kisskb/src/scripts/Makefile.build:509: drivers/watchdog] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/kisskb/src/Makefile:1649: drivers] Error 2 make: *** [Makefile:179: sub-make] Error 2 Command 'make -s -j 120 ARCH=sparc64 O=/kisskb/build/linus_sparc64-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus_sparc64-allmodconfig_sparc64 # Build took: 0:06:22.667669