# git rev-parse -q --verify 15a2bc4dbb9cfed1c661a657fcb10798150b7598^{commit} 15a2bc4dbb9cfed1c661a657fcb10798150b7598 already have revision, skipping fetch # git checkout -q -f -B kisskb 15a2bc4dbb9cfed1c661a657fcb10798150b7598 # git clean -qxdf # < git log -1 # commit 15a2bc4dbb9cfed1c661a657fcb10798150b7598 # Merge: 9ff7258575d5 3977e285ee89 # Author: Linus Torvalds # Date: Thu Jun 4 14:07:08 2020 -0700 # # Merge branch 'exec-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace # # Pull execve updates from Eric Biederman: # "Last cycle for the Nth time I ran into bugs and quality of # implementation issues related to exec that could not be easily be # fixed because of the way exec is implemented. So I have been digging # into exec and cleanup up what I can. # # I don't think I have exec sorted out enough to fix the issues I # started with but I have made some headway this cycle with 4 sets of # changes. # # - promised cleanups after introducing exec_update_mutex # # - trivial cleanups for exec # # - control flow simplifications # # - remove the recomputation of bprm->cred # # The net result is code that is a bit easier to understand and work # with and a decrease in the number of lines of code (if you don't count # the added tests)" # # * 'exec-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (24 commits) # exec: Compute file based creds only once # exec: Add a per bprm->file version of per_clear # binfmt_elf_fdpic: fix execfd build regression # selftests/exec: Add binfmt_script regression test # exec: Remove recursion from search_binary_handler # exec: Generic execfd support # exec/binfmt_script: Don't modify bprm->buf and then return -ENOEXEC # exec: Move the call of prepare_binprm into search_binary_handler # exec: Allow load_misc_binary to call prepare_binprm unconditionally # exec: Convert security_bprm_set_creds into security_bprm_repopulate_creds # exec: Factor security_bprm_creds_for_exec out of security_bprm_set_creds # exec: Teach prepare_exec_creds how exec treats uids & gids # exec: Set the point of no return sooner # exec: Move handling of the point of no return to the top level # exec: Run sync_mm_rss before taking exec_update_mutex # exec: Fix spelling of search_binary_handler in a comment # exec: Move the comment from above de_thread to above unshare_sighand # exec: Rename flush_old_exec begin_new_exec # exec: Move most of setup_new_exec into flush_old_exec # exec: In setup_new_exec cache current in the local variable me # ... # < /opt/cross/kisskb/korg/gcc-10.1.0-nolibc/sh4-linux/bin/sh4-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-10.1.0-nolibc/sh4-linux/bin/sh4-linux-ld --version # < git log --format=%s --max-count=1 15a2bc4dbb9cfed1c661a657fcb10798150b7598 # < make -s -j 10 ARCH=sh O=/kisskb/build/linus_se7750_defconfig_sh4-gcc10 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-10.1.0-nolibc/sh4-linux/bin/sh4-linux- se7750_defconfig # < make -s -j 10 ARCH=sh O=/kisskb/build/linus_se7750_defconfig_sh4-gcc10 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-10.1.0-nolibc/sh4-linux/bin/sh4-linux- help # make -s -j 10 ARCH=sh O=/kisskb/build/linus_se7750_defconfig_sh4-gcc10 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-10.1.0-nolibc/sh4-linux/bin/sh4-linux- olddefconfig # make -s -j 10 ARCH=sh O=/kisskb/build/linus_se7750_defconfig_sh4-gcc10 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-10.1.0-nolibc/sh4-linux/bin/sh4-linux- Generating include/generated/machtypes.h :1511:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S: Assembler messages: /kisskb/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:385: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence /kisskb/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:388: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence In file included from /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:13: /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:105:24: note: in expansion of macro '_INTC_ARRAY' 105 | _INTC_ARRAY(vectors), _INTC_ARRAY(groups), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:215:8: note: in expansion of macro 'DECLARE_INTC_DESC' 215 | static DECLARE_INTC_DESC(intc_desc, "sh7750", vectors, NULL, | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:106:2: note: in expansion of macro '_INTC_ARRAY' 106 | _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:215:8: note: in expansion of macro 'DECLARE_INTC_DESC' 215 | static DECLARE_INTC_DESC(intc_desc, "sh7750", vectors, NULL, | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:107:2: note: in expansion of macro '_INTC_ARRAY' 107 | _INTC_ARRAY(sense_regs), _INTC_ARRAY(ack_regs), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:215:8: note: in expansion of macro 'DECLARE_INTC_DESC' 215 | static DECLARE_INTC_DESC(intc_desc, "sh7750", vectors, NULL, | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:107:27: note: in expansion of macro '_INTC_ARRAY' 107 | _INTC_ARRAY(sense_regs), _INTC_ARRAY(ack_regs), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:215:8: note: in expansion of macro 'DECLARE_INTC_DESC' 215 | static DECLARE_INTC_DESC(intc_desc, "sh7750", vectors, NULL, | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:105:24: note: in expansion of macro '_INTC_ARRAY' 105 | _INTC_ARRAY(vectors), _INTC_ARRAY(groups), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:229:8: note: in expansion of macro 'DECLARE_INTC_DESC' 229 | static DECLARE_INTC_DESC(intc_desc_dma4, "sh7750_dma4", | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:106:2: note: in expansion of macro '_INTC_ARRAY' 106 | _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:229:8: note: in expansion of macro 'DECLARE_INTC_DESC' 229 | static DECLARE_INTC_DESC(intc_desc_dma4, "sh7750_dma4", | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:107:2: note: in expansion of macro '_INTC_ARRAY' 107 | _INTC_ARRAY(sense_regs), _INTC_ARRAY(ack_regs), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:229:8: note: in expansion of macro 'DECLARE_INTC_DESC' 229 | static DECLARE_INTC_DESC(intc_desc_dma4, "sh7750_dma4", | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:107:27: note: in expansion of macro '_INTC_ARRAY' 107 | _INTC_ARRAY(sense_regs), _INTC_ARRAY(ack_regs), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:229:8: note: in expansion of macro 'DECLARE_INTC_DESC' 229 | static DECLARE_INTC_DESC(intc_desc_dma4, "sh7750_dma4", | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:105:24: note: in expansion of macro '_INTC_ARRAY' 105 | _INTC_ARRAY(vectors), _INTC_ARRAY(groups), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:277:8: note: in expansion of macro 'DECLARE_INTC_DESC' 277 | static DECLARE_INTC_DESC(intc_desc_irlm, "sh7750_irlm", vectors_irlm, NULL, | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:106:2: note: in expansion of macro '_INTC_ARRAY' 106 | _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:277:8: note: in expansion of macro 'DECLARE_INTC_DESC' 277 | static DECLARE_INTC_DESC(intc_desc_irlm, "sh7750_irlm", vectors_irlm, NULL, | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:107:2: note: in expansion of macro '_INTC_ARRAY' 107 | _INTC_ARRAY(sense_regs), _INTC_ARRAY(ack_regs), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:277:8: note: in expansion of macro 'DECLARE_INTC_DESC' 277 | static DECLARE_INTC_DESC(intc_desc_irlm, "sh7750_irlm", vectors_irlm, NULL, | ^~~~~~~~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:100:63: warning: division 'sizeof (void *) / sizeof (void)' does not compute the number of array elements [-Wsizeof-pointer-div] 100 | #define _INTC_ARRAY(a) a, __same_type(a, NULL) ? 0 : sizeof(a)/sizeof(*a) | ^ /kisskb/src/include/linux/sh_intc.h:107:27: note: in expansion of macro '_INTC_ARRAY' 107 | _INTC_ARRAY(sense_regs), _INTC_ARRAY(ack_regs), \ | ^~~~~~~~~~~ /kisskb/src/include/linux/sh_intc.h:124:8: note: in expansion of macro 'INTC_HW_DESC' 124 | .hw = INTC_HW_DESC(vectors, groups, mask_regs, \ | ^~~~~~~~~~~~ /kisskb/src/arch/sh/kernel/cpu/sh4/setup-sh7750.c:277:8: note: in expansion of macro 'DECLARE_INTC_DESC' 277 | static DECLARE_INTC_DESC(intc_desc_irlm, "sh7750_irlm", vectors_irlm, NULL, | ^~~~~~~~~~~~~~~~~ /kisskb/src/kernel/module.c: In function 'do_init_module': /kisskb/src/kernel/module.c:3593:2: error: implicit declaration of function 'module_enable_ro'; did you mean 'module_enable_x'? [-Werror=implicit-function-declaration] 3593 | module_enable_ro(mod, true); | ^~~~~~~~~~~~~~~~ | module_enable_x cc1: some warnings being treated as errors make[2]: *** [/kisskb/src/scripts/Makefile.build:267: kernel/module.o] Error 1 make[1]: *** [/kisskb/src/Makefile:1735: kernel] Error 2 make[1]: *** Waiting for unfinished jobs.... /kisskb/src/drivers/sh/clk/cpg.c: In function 'r8': /kisskb/src/drivers/sh/clk/cpg.c:41:17: warning: passing argument 1 of 'ioread8' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 41 | return ioread8(addr); | ^~~~ In file included from /kisskb/src/arch/sh/include/asm/io.h:21, from /kisskb/src/include/linux/io.h:13, from /kisskb/src/drivers/sh/clk/cpg.c:14: /kisskb/src/include/asm-generic/iomap.h:29:29: note: expected 'void *' but argument is of type 'const void *' 29 | extern unsigned int ioread8(void __iomem *); | ^~~~~~~~~~~~~~ /kisskb/src/drivers/sh/clk/cpg.c: In function 'r16': /kisskb/src/drivers/sh/clk/cpg.c:46:18: warning: passing argument 1 of 'ioread16' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 46 | return ioread16(addr); | ^~~~ In file included from /kisskb/src/arch/sh/include/asm/io.h:21, from /kisskb/src/include/linux/io.h:13, from /kisskb/src/drivers/sh/clk/cpg.c:14: /kisskb/src/include/asm-generic/iomap.h:30:30: note: expected 'void *' but argument is of type 'const void *' 30 | extern unsigned int ioread16(void __iomem *); | ^~~~~~~~~~~~~~ /kisskb/src/drivers/sh/clk/cpg.c: In function 'r32': /kisskb/src/drivers/sh/clk/cpg.c:51:18: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 51 | return ioread32(addr); | ^~~~ In file included from /kisskb/src/arch/sh/include/asm/io.h:21, from /kisskb/src/include/linux/io.h:13, from /kisskb/src/drivers/sh/clk/cpg.c:14: /kisskb/src/include/asm-generic/iomap.h:32:30: note: expected 'void *' but argument is of type 'const void *' 32 | extern unsigned int ioread32(void __iomem *); | ^~~~~~~~~~~~~~ make: *** [Makefile:180: sub-make] Error 2 Command 'make -s -j 10 ARCH=sh O=/kisskb/build/linus_se7750_defconfig_sh4-gcc10 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-10.1.0-nolibc/sh4-linux/bin/sh4-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus_se7750_defconfig_sh4-gcc10 # Build took: 0:01:28.016779