Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Bury the conditionals from kernel_thread/kernel_execve series

All architectures have
CONFIG_GENERIC_KERNEL_THREAD
CONFIG_GENERIC_KERNEL_EXECVE
__ARCH_WANT_SYS_EXECVE
None of them have __ARCH_WANT_KERNEL_EXECVE and there are only two callers
of kernel_execve() (which is a trivial wrapper for do_execve() now) left.
Kill the conditionals and make both callers use do_execve().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro ae903caa 46836613

+6 -131
-6
arch/Kconfig
··· 271 271 select ARCH_WANT_COMPAT_IPC_PARSE_VERSION 272 272 bool 273 273 274 - config GENERIC_KERNEL_THREAD 275 - bool 276 - 277 - config GENERIC_KERNEL_EXECVE 278 - bool 279 - 280 274 config HAVE_ARCH_SECCOMP_FILTER 281 275 bool 282 276 help
-2
arch/alpha/Kconfig
··· 20 20 select GENERIC_CMOS_UPDATE 21 21 select GENERIC_STRNCPY_FROM_USER 22 22 select GENERIC_STRNLEN_USER 23 - select GENERIC_KERNEL_THREAD 24 - select GENERIC_KERNEL_EXECVE 25 23 select HAVE_MOD_ARCH_SPECIFIC 26 24 select MODULES_USE_ELF_RELA 27 25 help
-1
arch/alpha/include/asm/unistd.h
··· 481 481 #define __ARCH_WANT_SYS_OLDUMOUNT 482 482 #define __ARCH_WANT_SYS_SIGPENDING 483 483 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 484 - #define __ARCH_WANT_SYS_EXECVE 485 484 #define __ARCH_WANT_SYS_FORK 486 485 #define __ARCH_WANT_SYS_VFORK 487 486 #define __ARCH_WANT_SYS_CLONE
-2
arch/arm/Kconfig
··· 11 11 select GENERIC_CLOCKEVENTS_BROADCAST if SMP 12 12 select GENERIC_IRQ_PROBE 13 13 select GENERIC_IRQ_SHOW 14 - select GENERIC_KERNEL_THREAD 15 - select GENERIC_KERNEL_EXECVE 16 14 select GENERIC_PCI_IOMAP 17 15 select GENERIC_SMP_IDLE_THREAD 18 16 select GENERIC_STRNCPY_FROM_USER
-1
arch/arm/include/asm/unistd.h
··· 41 41 #define __ARCH_WANT_OLD_READDIR 42 42 #define __ARCH_WANT_SYS_SOCKETCALL 43 43 #endif 44 - #define __ARCH_WANT_SYS_EXECVE 45 44 #define __ARCH_WANT_SYS_FORK 46 45 #define __ARCH_WANT_SYS_VFORK 47 46 #define __ARCH_WANT_SYS_CLONE
-2
arch/arm64/Kconfig
··· 7 7 select GENERIC_IOMAP 8 8 select GENERIC_IRQ_PROBE 9 9 select GENERIC_IRQ_SHOW 10 - select GENERIC_KERNEL_EXECVE 11 - select GENERIC_KERNEL_THREAD 12 10 select GENERIC_SMP_IDLE_THREAD 13 11 select GENERIC_TIME_VSYSCALL 14 12 select HARDIRQS_SW_RESEND
-1
arch/arm64/include/asm/unistd.h
··· 27 27 #define __ARCH_WANT_SYS_FORK 28 28 #define __ARCH_WANT_SYS_VFORK 29 29 #endif 30 - #define __ARCH_WANT_SYS_EXECVE 31 30 #define __ARCH_WANT_SYS_CLONE 32 31 #include <uapi/asm/unistd.h>
-2
arch/avr32/Kconfig
··· 17 17 select GENERIC_CLOCKEVENTS 18 18 select HAVE_MOD_ARCH_SPECIFIC 19 19 select MODULES_USE_ELF_RELA 20 - select GENERIC_KERNEL_THREAD 21 - select GENERIC_KERNEL_EXECVE 22 20 help 23 21 AVR32 is a high-performance 32-bit RISC microprocessor core, 24 22 designed for cost-sensitive embedded applications, with particular
-1
arch/avr32/include/asm/unistd.h
··· 39 39 #define __ARCH_WANT_SYS_GETPGRP 40 40 #define __ARCH_WANT_SYS_RT_SIGACTION 41 41 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 42 - #define __ARCH_WANT_SYS_EXECVE 43 42 #define __ARCH_WANT_SYS_FORK 44 43 #define __ARCH_WANT_SYS_VFORK 45 44 #define __ARCH_WANT_SYS_CLONE
-2
arch/blackfin/Kconfig
··· 45 45 select ARCH_USES_GETTIMEOFFSET if !GENERIC_CLOCKEVENTS 46 46 select HAVE_MOD_ARCH_SPECIFIC 47 47 select MODULES_USE_ELF_RELA 48 - select GENERIC_KERNEL_THREAD 49 - select GENERIC_KERNEL_EXECVE 50 48 51 49 config GENERIC_CSUM 52 50 def_bool y
-1
arch/blackfin/include/asm/unistd.h
··· 446 446 #define __ARCH_WANT_SYS_NICE 447 447 #define __ARCH_WANT_SYS_RT_SIGACTION 448 448 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 449 - #define __ARCH_WANT_SYS_EXECVE 450 449 #define __ARCH_WANT_SYS_VFORK 451 450 452 451 /*
-2
arch/c6x/Kconfig
··· 17 17 select OF 18 18 select OF_EARLY_FLATTREE 19 19 select GENERIC_CLOCKEVENTS 20 - select GENERIC_KERNEL_THREAD 21 - select GENERIC_KERNEL_EXECVE 22 20 select MODULES_USE_ELF_RELA 23 21 24 22 config MMU
-1
arch/c6x/include/uapi/asm/unistd.h
··· 14 14 * more details. 15 15 */ 16 16 17 - #define __ARCH_WANT_SYS_EXECVE 18 17 #define __ARCH_WANT_SYS_CLONE 19 18 20 19 /* Use the standard ABI for syscalls. */
-2
arch/cris/Kconfig
··· 49 49 select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32 50 50 select GENERIC_CMOS_UPDATE 51 51 select MODULES_USE_ELF_RELA 52 - select GENERIC_KERNEL_THREAD 53 - select GENERIC_KERNEL_EXECVE 54 52 select CLONE_BACKWARDS2 55 53 56 54 config HZ
-1
arch/cris/include/asm/unistd.h
··· 371 371 #define __ARCH_WANT_SYS_SIGPROCMASK 372 372 #define __ARCH_WANT_SYS_RT_SIGACTION 373 373 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 374 - #define __ARCH_WANT_SYS_EXECVE 375 374 #define __ARCH_WANT_SYS_FORK 376 375 #define __ARCH_WANT_SYS_VFORK 377 376 #define __ARCH_WANT_SYS_CLONE
-2
arch/frv/Kconfig
··· 12 12 select ARCH_HAVE_NMI_SAFE_CMPXCHG 13 13 select GENERIC_CPU_DEVICES 14 14 select ARCH_WANT_IPC_PARSE_VERSION 15 - select GENERIC_KERNEL_THREAD 16 - select GENERIC_KERNEL_EXECVE 17 15 18 16 config ZONE_DMA 19 17 bool
-1
arch/frv/include/asm/unistd.h
··· 29 29 #define __ARCH_WANT_SYS_SIGPROCMASK 30 30 #define __ARCH_WANT_SYS_RT_SIGACTION 31 31 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 32 - #define __ARCH_WANT_SYS_EXECVE 33 32 #define __ARCH_WANT_SYS_FORK 34 33 #define __ARCH_WANT_SYS_VFORK 35 34 #define __ARCH_WANT_SYS_CLONE
-2
arch/h8300/Kconfig
··· 8 8 select GENERIC_IRQ_SHOW 9 9 select GENERIC_CPU_DEVICES 10 10 select MODULES_USE_ELF_RELA 11 - select GENERIC_KERNEL_THREAD 12 - select GENERIC_KERNEL_EXECVE 13 11 14 12 config SYMBOL_PREFIX 15 13 string
-1
arch/h8300/include/asm/unistd.h
··· 356 356 #define __ARCH_WANT_SYS_SIGPROCMASK 357 357 #define __ARCH_WANT_SYS_RT_SIGACTION 358 358 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 359 - #define __ARCH_WANT_SYS_EXECVE 360 359 #define __ARCH_WANT_SYS_FORK 361 360 #define __ARCH_WANT_SYS_VFORK 362 361 #define __ARCH_WANT_SYS_CLONE
-2
arch/hexagon/Kconfig
··· 31 31 select GENERIC_CLOCKEVENTS 32 32 select GENERIC_CLOCKEVENTS_BROADCAST 33 33 select MODULES_USE_ELF_RELA 34 - select GENERIC_KERNEL_THREAD 35 - select GENERIC_KERNEL_EXECVE 36 34 ---help--- 37 35 Qualcomm Hexagon is a processor architecture designed for high 38 36 performance and low power across a wide variety of applications.
-1
arch/hexagon/include/uapi/asm/unistd.h
··· 27 27 */ 28 28 29 29 #define sys_mmap2 sys_mmap_pgoff 30 - #define __ARCH_WANT_SYS_EXECVE 31 30 #define __ARCH_WANT_SYS_CLONE 32 31 33 32 #include <asm-generic/unistd.h>
-2
arch/ia64/Kconfig
··· 42 42 select GENERIC_TIME_VSYSCALL_OLD 43 43 select HAVE_MOD_ARCH_SPECIFIC 44 44 select MODULES_USE_ELF_RELA 45 - select GENERIC_KERNEL_THREAD 46 - select GENERIC_KERNEL_EXECVE 47 45 default y 48 46 help 49 47 The Itanium Processor Family is Intel's 64-bit successor to
-1
arch/ia64/include/asm/unistd.h
··· 29 29 30 30 #define __ARCH_WANT_SYS_RT_SIGACTION 31 31 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 32 - #define __ARCH_WANT_SYS_EXECVE 33 32 34 33 #if !defined(__ASSEMBLY__) && !defined(ASSEMBLER) 35 34
-2
arch/m32r/Kconfig
··· 15 15 select GENERIC_ATOMIC64 16 16 select ARCH_USES_GETTIMEOFFSET 17 17 select MODULES_USE_ELF_RELA 18 - select GENERIC_KERNEL_THREAD 19 - select GENERIC_KERNEL_EXECVE 20 18 21 19 config SBUS 22 20 bool
-1
arch/m32r/include/asm/unistd.h
··· 352 352 #define __ARCH_WANT_SYS_OLDUMOUNT 353 353 #define __ARCH_WANT_SYS_RT_SIGACTION 354 354 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 355 - #define __ARCH_WANT_SYS_EXECVE 356 355 #define __ARCH_WANT_SYS_CLONE 357 356 #define __ARCH_WANT_SYS_FORK 358 357 #define __ARCH_WANT_SYS_VFORK
-2
arch/m68k/Kconfig
··· 15 15 select FPU if MMU 16 16 select ARCH_WANT_IPC_PARSE_VERSION 17 17 select ARCH_USES_GETTIMEOFFSET if MMU && !COLDFIRE 18 - select GENERIC_KERNEL_THREAD 19 - select GENERIC_KERNEL_EXECVE 20 18 select HAVE_MOD_ARCH_SPECIFIC 21 19 select MODULES_USE_ELF_REL 22 20 select MODULES_USE_ELF_RELA
-1
arch/m68k/include/asm/unistd.h
··· 31 31 #define __ARCH_WANT_SYS_SIGPROCMASK 32 32 #define __ARCH_WANT_SYS_RT_SIGACTION 33 33 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 34 - #define __ARCH_WANT_SYS_EXECVE 35 34 #define __ARCH_WANT_SYS_FORK 36 35 #define __ARCH_WANT_SYS_VFORK 37 36
-2
arch/microblaze/Kconfig
··· 26 26 select GENERIC_ATOMIC64 27 27 select GENERIC_CLOCKEVENTS 28 28 select MODULES_USE_ELF_RELA 29 - select GENERIC_KERNEL_THREAD 30 - select GENERIC_KERNEL_EXECVE 31 29 select CLONE_BACKWARDS 32 30 33 31 config SWAP
-1
arch/microblaze/include/asm/unistd.h
··· 422 422 #define __ARCH_WANT_SYS_SIGPROCMASK 423 423 #define __ARCH_WANT_SYS_RT_SIGACTION 424 424 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 425 - #define __ARCH_WANT_SYS_EXECVE 426 425 #define __ARCH_WANT_SYS_CLONE 427 426 #define __ARCH_WANT_SYS_VFORK 428 427 #ifdef CONFIG_MMU
-2
arch/mips/Kconfig
··· 40 40 select HAVE_MOD_ARCH_SPECIFIC 41 41 select MODULES_USE_ELF_REL 42 42 select MODULES_USE_ELF_RELA if 64BIT 43 - select GENERIC_KERNEL_THREAD 44 - select GENERIC_KERNEL_EXECVE 45 43 46 44 menu "Machine selection" 47 45
-1
arch/mips/include/asm/unistd.h
··· 20 20 #define __ARCH_OMIT_COMPAT_SYS_GETDENTS64 21 21 #define __ARCH_WANT_OLD_READDIR 22 22 #define __ARCH_WANT_SYS_ALARM 23 - #define __ARCH_WANT_SYS_EXECVE 24 23 #define __ARCH_WANT_SYS_GETHOSTNAME 25 24 #define __ARCH_WANT_SYS_IPC 26 25 #define __ARCH_WANT_SYS_PAUSE
-2
arch/mn10300/Kconfig
··· 8 8 select HAVE_ARCH_KGDB 9 9 select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER 10 10 select GENERIC_CLOCKEVENTS 11 - select GENERIC_KERNEL_THREAD 12 - select GENERIC_KERNEL_EXECVE 13 11 select MODULES_USE_ELF_RELA 14 12 15 13 config AM33_2
-1
arch/mn10300/include/asm/unistd.h
··· 43 43 #define __ARCH_WANT_SYS_SIGPROCMASK 44 44 #define __ARCH_WANT_SYS_RT_SIGACTION 45 45 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 46 - #define __ARCH_WANT_SYS_EXECVE 47 46 #define __ARCH_WANT_SYS_FORK 48 47 #define __ARCH_WANT_SYS_VFORK 49 48 #define __ARCH_WANT_SYS_CLONE
-2
arch/openrisc/Kconfig
··· 22 22 select GENERIC_STRNCPY_FROM_USER 23 23 select GENERIC_STRNLEN_USER 24 24 select MODULES_USE_ELF_RELA 25 - select GENERIC_KERNEL_THREAD 26 - select GENERIC_KERNEL_EXECVE 27 25 28 26 config MMU 29 27 def_bool y
-1
arch/openrisc/include/uapi/asm/unistd.h
··· 20 20 21 21 #define sys_mmap2 sys_mmap_pgoff 22 22 23 - #define __ARCH_WANT_SYS_EXECVE 24 23 #define __ARCH_WANT_SYS_FORK 25 24 #define __ARCH_WANT_SYS_CLONE 26 25
-2
arch/parisc/Kconfig
··· 22 22 select GENERIC_STRNCPY_FROM_USER 23 23 select HAVE_MOD_ARCH_SPECIFIC 24 24 select MODULES_USE_ELF_RELA 25 - select GENERIC_KERNEL_THREAD 26 - select GENERIC_KERNEL_EXECVE 27 25 select CLONE_BACKWARDS 28 26 29 27 help
-1
arch/parisc/include/asm/unistd.h
··· 163 163 #define __ARCH_WANT_SYS_RT_SIGACTION 164 164 #define __ARCH_WANT_SYS_RT_SIGSUSPEND 165 165 #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND 166 - #define __ARCH_WANT_SYS_EXECVE 167 166 #define __ARCH_WANT_SYS_FORK 168 167 #define __ARCH_WANT_SYS_VFORK 169 168 #define __ARCH_WANT_SYS_CLONE
-2
arch/powerpc/Kconfig
··· 141 141 select GENERIC_CLOCKEVENTS 142 142 select GENERIC_STRNCPY_FROM_USER 143 143 select GENERIC_STRNLEN_USER 144 - select GENERIC_KERNEL_THREAD 145 144 select HAVE_MOD_ARCH_SPECIFIC 146 145 select MODULES_USE_ELF_RELA 147 - select GENERIC_KERNEL_EXECVE 148 146 select CLONE_BACKWARDS 149 147 150 148 config EARLY_PRINTK
-1
arch/powerpc/include/asm/unistd.h
··· 55 55 #define __ARCH_WANT_SYS_NEWFSTATAT 56 56 #define __ARCH_WANT_COMPAT_SYS_SENDFILE 57 57 #endif 58 - #define __ARCH_WANT_SYS_EXECVE 59 58 #define __ARCH_WANT_SYS_FORK 60 59 #define __ARCH_WANT_SYS_VFORK 61 60 #define __ARCH_WANT_SYS_CLONE
-2
arch/s390/Kconfig
··· 137 137 select GENERIC_CLOCKEVENTS 138 138 select KTIME_SCALAR if 32BIT 139 139 select HAVE_ARCH_SECCOMP_FILTER 140 - select GENERIC_KERNEL_THREAD 141 - select GENERIC_KERNEL_EXECVE 142 140 select HAVE_MOD_ARCH_SPECIFIC 143 141 select MODULES_USE_ELF_RELA 144 142 select CLONE_BACKWARDS2
-1
arch/s390/include/asm/unistd.h
··· 53 53 # define __ARCH_WANT_COMPAT_SYS_TIME 54 54 # define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND 55 55 # endif 56 - #define __ARCH_WANT_SYS_EXECVE 57 56 #define __ARCH_WANT_SYS_FORK 58 57 #define __ARCH_WANT_SYS_VFORK 59 58 #define __ARCH_WANT_SYS_CLONE
-2
arch/score/Kconfig
··· 13 13 select GENERIC_CLOCKEVENTS 14 14 select HAVE_MOD_ARCH_SPECIFIC 15 15 select MODULES_USE_ELF_REL 16 - select GENERIC_KERNEL_THREAD 17 - select GENERIC_KERNEL_EXECVE 18 16 select CLONE_BACKWARDS 19 17 20 18 choice
-1
arch/score/include/asm/unistd.h
··· 4 4 #define __ARCH_WANT_SYSCALL_NO_FLAGS 5 5 #define __ARCH_WANT_SYSCALL_OFF_T 6 6 #define __ARCH_WANT_SYSCALL_DEPRECATED 7 - #define __ARCH_WANT_SYS_EXECVE 8 7 #define __ARCH_WANT_SYS_CLONE 9 8 #define __ARCH_WANT_SYS_FORK 10 9 #define __ARCH_WANT_SYS_VFORK
-2
arch/sh/Kconfig
··· 40 40 select GENERIC_STRNLEN_USER 41 41 select HAVE_MOD_ARCH_SPECIFIC if DWARF_UNWINDER 42 42 select MODULES_USE_ELF_RELA 43 - select GENERIC_KERNEL_THREAD 44 - select GENERIC_KERNEL_EXECVE 45 43 help 46 44 The SuperH is a RISC processor targeted for use in embedded systems 47 45 and consumer electronics; it was also used in the Sega Dreamcast
-1
arch/sh/include/asm/unistd.h
··· 28 28 # define __ARCH_WANT_SYS_SIGPENDING 29 29 # define __ARCH_WANT_SYS_SIGPROCMASK 30 30 # define __ARCH_WANT_SYS_RT_SIGACTION 31 - # define __ARCH_WANT_SYS_EXECVE 32 31 # define __ARCH_WANT_SYS_FORK 33 32 # define __ARCH_WANT_SYS_VFORK 34 33 # define __ARCH_WANT_SYS_CLONE
-2
arch/sparc/Kconfig
··· 41 41 select GENERIC_STRNCPY_FROM_USER 42 42 select GENERIC_STRNLEN_USER 43 43 select MODULES_USE_ELF_RELA 44 - select GENERIC_KERNEL_THREAD 45 - select GENERIC_KERNEL_EXECVE 46 44 47 45 config SPARC32 48 46 def_bool !64BIT
-1
arch/sparc/include/asm/unistd.h
··· 46 46 #define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND 47 47 #define __ARCH_WANT_COMPAT_SYS_SENDFILE 48 48 #endif 49 - #define __ARCH_WANT_SYS_EXECVE 50 49 51 50 /* 52 51 * "Conditional" syscalls
-2
arch/tile/Kconfig
··· 21 21 select ARCH_HAVE_NMI_SAFE_CMPXCHG 22 22 select GENERIC_CLOCKEVENTS 23 23 select MODULES_USE_ELF_RELA 24 - select GENERIC_KERNEL_THREAD 25 - select GENERIC_KERNEL_EXECVE 26 24 27 25 # FIXME: investigate whether we need/want these options. 28 26 # select HAVE_IOREMAP_PROT
-1
arch/tile/include/asm/unistd.h
··· 16 16 #define __ARCH_WANT_SYS_LLSEEK 17 17 #endif 18 18 #define __ARCH_WANT_SYS_NEWFSTATAT 19 - #define __ARCH_WANT_SYS_EXECVE 20 19 #define __ARCH_WANT_SYS_CLONE 21 20 #include <uapi/asm/unistd.h>
-2
arch/unicore32/Kconfig
··· 16 16 select ARCH_WANT_FRAME_POINTERS 17 17 select GENERIC_IOMAP 18 18 select MODULES_USE_ELF_REL 19 - select GENERIC_KERNEL_THREAD 20 - select GENERIC_KERNEL_EXECVE 21 19 help 22 20 UniCore-32 is 32-bit Instruction Set Architecture, 23 21 including a series of low-power-consumption RISC chip
-1
arch/unicore32/include/uapi/asm/unistd.h
··· 12 12 13 13 /* Use the standard ABI for syscalls. */ 14 14 #include <asm-generic/unistd.h> 15 - #define __ARCH_WANT_SYS_EXECVE 16 15 #define __ARCH_WANT_SYS_CLONE
-2
arch/x86/Kconfig
··· 108 108 select GENERIC_STRNLEN_USER 109 109 select HAVE_RCU_USER_QS if X86_64 110 110 select HAVE_IRQ_TIME_ACCOUNTING 111 - select GENERIC_KERNEL_THREAD 112 - select GENERIC_KERNEL_EXECVE 113 111 select MODULES_USE_ELF_REL if X86_32 114 112 select MODULES_USE_ELF_RELA if X86_64 115 113 select CLONE_BACKWARDS if X86_32
-1
arch/x86/include/asm/unistd.h
··· 50 50 # define __ARCH_WANT_SYS_TIME 51 51 # define __ARCH_WANT_SYS_UTIME 52 52 # define __ARCH_WANT_SYS_WAITPID 53 - # define __ARCH_WANT_SYS_EXECVE 54 53 # define __ARCH_WANT_SYS_FORK 55 54 # define __ARCH_WANT_SYS_VFORK 56 55 # define __ARCH_WANT_SYS_CLONE
-2
arch/x86/um/Kconfig
··· 13 13 config UML_X86 14 14 def_bool y 15 15 select GENERIC_FIND_FIRST_BIT 16 - select GENERIC_KERNEL_THREAD 17 - select GENERIC_KERNEL_EXECVE 18 16 19 17 config 64BIT 20 18 bool "64-bit kernel" if SUBARCH = "x86"
-2
arch/xtensa/Kconfig
··· 13 13 select GENERIC_CPU_DEVICES 14 14 select MODULES_USE_ELF_RELA 15 15 select GENERIC_PCI_IOMAP 16 - select GENERIC_KERNEL_THREAD 17 - select GENERIC_KERNEL_EXECVE 18 16 select ARCH_WANT_OPTIONAL_GPIOLIB 19 17 select CLONE_BACKWARDS 20 18 help
-1
arch/xtensa/include/asm/unistd.h
··· 1 1 #ifndef _XTENSA_UNISTD_H 2 2 #define _XTENSA_UNISTD_H 3 3 4 - #define __ARCH_WANT_SYS_EXECVE 5 4 #define __ARCH_WANT_SYS_CLONE 6 5 #include <uapi/asm/unistd.h> 7 6
-21
fs/exec.c
··· 1657 1657 return __get_dumpable(mm->flags); 1658 1658 } 1659 1659 1660 - #ifdef __ARCH_WANT_SYS_EXECVE 1661 1660 SYSCALL_DEFINE3(execve, 1662 1661 const char __user *, filename, 1663 1662 const char __user *const __user *, argv, ··· 1682 1683 putname(path); 1683 1684 } 1684 1685 return error; 1685 - } 1686 - #endif 1687 - #endif 1688 - 1689 - #ifdef __ARCH_WANT_KERNEL_EXECVE 1690 - int kernel_execve(const char *filename, 1691 - const char *const argv[], 1692 - const char *const envp[]) 1693 - { 1694 - int ret = do_execve(filename, 1695 - (const char __user *const __user *)argv, 1696 - (const char __user *const __user *)envp); 1697 - if (ret < 0) 1698 - return ret; 1699 - 1700 - /* 1701 - * We were successful. We won't be returning to our caller, but 1702 - * instead to user space by manipulating the kernel stack. 1703 - */ 1704 - ret_from_kernel_execve(current_pt_regs()); 1705 1686 } 1706 1687 #endif
-4
include/linux/binfmts.h
··· 121 121 extern void set_binfmt(struct linux_binfmt *new); 122 122 extern void free_bprm(struct linux_binprm *); 123 123 124 - #ifdef __ARCH_WANT_KERNEL_EXECVE 125 - extern void ret_from_kernel_execve(struct pt_regs *normal) __noreturn; 126 - #endif 127 - 128 124 #endif /* _LINUX_BINFMTS_H */
-2
include/linux/sched.h
··· 2291 2291 const char __user * const __user *); 2292 2292 extern long do_fork(unsigned long, unsigned long, unsigned long, int __user *, int __user *); 2293 2293 struct task_struct *fork_idle(int); 2294 - #ifdef CONFIG_GENERIC_KERNEL_THREAD 2295 2294 extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); 2296 - #endif 2297 2295 2298 2296 extern void set_task_comm(struct task_struct *tsk, char *from); 2299 2297 extern char *get_task_comm(char *to, struct task_struct *tsk);
-9
include/linux/syscalls.h
··· 827 827 const char __user *pathname); 828 828 asmlinkage long sys_syncfs(int fd); 829 829 830 - #ifndef CONFIG_GENERIC_KERNEL_EXECVE 831 - int kernel_execve(const char *filename, const char *const argv[], const char *const envp[]); 832 - #else 833 - #define kernel_execve(filename, argv, envp) \ 834 - do_execve(filename, \ 835 - (const char __user *const __user *)argv, \ 836 - (const char __user *const __user *)envp) 837 - #endif 838 - 839 830 asmlinkage long sys_fork(void); 840 831 asmlinkage long sys_vfork(void); 841 832 #ifdef CONFIG_CLONE_BACKWARDS
+3 -1
init/main.c
··· 797 797 static int run_init_process(const char *init_filename) 798 798 { 799 799 argv_init[0] = init_filename; 800 - return kernel_execve(init_filename, argv_init, envp_init); 800 + return do_execve(init_filename, 801 + (const char __user *const __user *)argv_init, 802 + (const char __user *const __user *)envp_init); 801 803 } 802 804 803 805 static void __init kernel_init_freeable(void);
-2
kernel/fork.c
··· 1623 1623 return nr; 1624 1624 } 1625 1625 1626 - #ifdef CONFIG_GENERIC_KERNEL_THREAD 1627 1626 /* 1628 1627 * Create a kernel thread. 1629 1628 */ ··· 1631 1632 return do_fork(flags|CLONE_VM|CLONE_UNTRACED, (unsigned long)fn, 1632 1633 (unsigned long)arg, NULL, NULL); 1633 1634 } 1634 - #endif 1635 1635 1636 1636 #ifdef __ARCH_WANT_SYS_FORK 1637 1637 SYSCALL_DEFINE0(fork)
+3 -3
kernel/kmod.c
··· 219 219 220 220 commit_creds(new); 221 221 222 - retval = kernel_execve(sub_info->path, 223 - (const char *const *)sub_info->argv, 224 - (const char *const *)sub_info->envp); 222 + retval = do_execve(sub_info->path, 223 + (const char __user *const __user *)sub_info->argv, 224 + (const char __user *const __user *)sub_info->envp); 225 225 if (!retval) 226 226 return 0; 227 227