# git rev-parse -q --verify 642e7fd23353e22290e3d51719fcb658dc252342^{commit} 642e7fd23353e22290e3d51719fcb658dc252342 already have revision, skipping fetch # git checkout -q -f -B kisskb 642e7fd23353e22290e3d51719fcb658dc252342 # git clean -qxdf # < git log -1 # commit 642e7fd23353e22290e3d51719fcb658dc252342 # Merge: 2103596 c9a2119 # Author: Linus Torvalds # Date: Mon Apr 2 21:22:12 2018 -0700 # # Merge branch 'syscalls-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux # # Pull removal of in-kernel calls to syscalls from Dominik Brodowski: # "System calls are interaction points between userspace and the kernel. # Therefore, system call functions such as sys_xyzzy() or # compat_sys_xyzzy() should only be called from userspace via the # syscall table, but not from elsewhere in the kernel. # # At least on 64-bit x86, it will likely be a hard requirement from # v4.17 onwards to not call system call functions in the kernel: It is # better to use use a different calling convention for system calls # there, where struct pt_regs is decoded on-the-fly in a syscall wrapper # which then hands processing over to the actual syscall function. This # means that only those parameters which are actually needed for a # specific syscall are passed on during syscall entry, instead of # filling in six CPU registers with random user space content all the # time (which may cause serious trouble down the call chain). Those # x86-specific patches will be pushed through the x86 tree in the near # future. # # Moreover, rules on how data may be accessed may differ between kernel # data and user data. This is another reason why calling sys_xyzzy() is # generally a bad idea, and -- at most -- acceptable in arch-specific # code. # # This patchset removes all in-kernel calls to syscall functions in the # kernel with the exception of arch/. On top of this, it cleans up the # three places where many syscalls are referenced or prototyped, namely # kernel/sys_ni.c, include/linux/syscalls.h and include/linux/compat.h" # # * 'syscalls-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux: (109 commits) # bpf: whitelist all syscalls for error injection # kernel/sys_ni: remove {sys_,sys_compat} from cond_syscall definitions # kernel/sys_ni: sort cond_syscall() entries # syscalls/x86: auto-create compat_sys_*() prototypes # syscalls: sort syscall prototypes in include/linux/compat.h # net: remove compat_sys_*() prototypes from net/compat.h # syscalls: sort syscall prototypes in include/linux/syscalls.h # kexec: move sys_kexec_load() prototype to syscalls.h # x86/sigreturn: use SYSCALL_DEFINE0 # x86: fix sys_sigreturn() return type to be long, not unsigned long # x86/ioport: add ksys_ioperm() helper; remove in-kernel calls to sys_ioperm() # mm: add ksys_readahead() helper; remove in-kernel calls to sys_readahead() # mm: add ksys_mmap_pgoff() helper; remove in-kernel calls to sys_mmap_pgoff() # mm: add ksys_fadvise64_64() helper; remove in-kernel call to sys_fadvise64_64() # fs: add ksys_fallocate() wrapper; remove in-kernel calls to sys_fallocate() # fs: add ksys_p{read,write}64() helpers; remove in-kernel calls to syscalls # fs: add ksys_truncate() wrapper; remove in-kernel calls to sys_truncate() # fs: add ksys_sync_file_range helper(); remove in-kernel calls to syscall # kernel: add ksys_setsid() helper; remove in-kernel call to sys_setsid() # kernel: add ksys_unshare() helper; remove in-kernel calls to sys_unshare() # ... # < /opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux-gcc --version # < git log --format=%s --max-count=1 642e7fd23353e22290e3d51719fcb658dc252342 # < make -s -j 48 ARCH=mips O=/kisskb/build/linus_mips-allmodconfig_mipsel CROSS_COMPILE=/opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux- allmodconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_SAMPLES=n # Added to kconfig CONFIG_MIPS_CPS_NS16550_BASE=0x1b0003f8 # Added to kconfig CONFIG_MIPS_CPS_NS16550_SHIFT=0 # Added to kconfig # yes \n | make -s -j 48 ARCH=mips O=/kisskb/build/linus_mips-allmodconfig_mipsel CROSS_COMPILE=/opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux- oldconfig yes: standard output: Broken pipe yes: write error # make -s -j 48 ARCH=mips O=/kisskb/build/linus_mips-allmodconfig_mipsel CROSS_COMPILE=/opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux- /kisskb/src/drivers/input/joystick/analog.c:176:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp] #warning Precise timer not defined for this architecture. ^ /kisskb/src/drivers/spi/spi-sh-msiof.c:77:0: warning: "STR" redefined #define STR 0x40 /* Status Register */ ^ In file included from /kisskb/src/arch/mips/include/asm/mach-generic/spaces.h:15:0, from /kisskb/src/arch/mips/include/asm/addrspace.h:13, from /kisskb/src/arch/mips/include/asm/barrier.h:11, from /kisskb/src/include/linux/compiler.h:245, from /kisskb/src/arch/mips/include/asm/bitops.h:16, from /kisskb/src/include/linux/bitops.h:38, from /kisskb/src/include/linux/bitmap.h:8, from /kisskb/src/drivers/spi/spi-sh-msiof.c:14: /kisskb/src/arch/mips/include/asm/mipsregs.h:29:0: note: this is the location of the previous definition #define STR(x) __STR(x) ^ In file included from /kisskb/src/arch/mips/include/asm/sibyte/sb1250.h:41:0, from /kisskb/src/drivers/watchdog/sb_wdog.c:58: /kisskb/src/arch/mips/include/asm/sibyte/bcm1480_scd.h:274:0: warning: "M_SPC_CFG_CLEAR" redefined #define M_SPC_CFG_CLEAR M_BCM1480_SPC_CFG_CLEAR ^ In file included from /kisskb/src/arch/mips/include/asm/sibyte/sb1250.h:40:0, from /kisskb/src/drivers/watchdog/sb_wdog.c:58: /kisskb/src/arch/mips/include/asm/sibyte/sb1250_scd.h:405:0: note: this is the location of the previous definition #define M_SPC_CFG_CLEAR _SB_MAKEMASK1(32) ^ In file included from /kisskb/src/arch/mips/include/asm/sibyte/sb1250.h:41:0, from /kisskb/src/drivers/watchdog/sb_wdog.c:58: /kisskb/src/arch/mips/include/asm/sibyte/bcm1480_scd.h:275:0: warning: "M_SPC_CFG_ENABLE" redefined #define M_SPC_CFG_ENABLE M_BCM1480_SPC_CFG_ENABLE ^ In file included from /kisskb/src/arch/mips/include/asm/sibyte/sb1250.h:40:0, from /kisskb/src/drivers/watchdog/sb_wdog.c:58: /kisskb/src/arch/mips/include/asm/sibyte/sb1250_scd.h:406:0: note: this is the location of the previous definition #define M_SPC_CFG_ENABLE _SB_MAKEMASK1(33) ^ /kisskb/src/drivers/net/ethernet/intel/i40e/i40e_ethtool.c: In function 'i40e_set_priv_flags': /kisskb/src/drivers/net/ethernet/intel/i40e/i40e_ethtool.c:4443:6: error: implicit declaration of function 'cmpxchg64' [-Werror=implicit-function-declaration] if (cmpxchg64(&pf->flags, orig_flags, new_flags) != orig_flags) { ^ cc1: some warnings being treated as errors /kisskb/src/scripts/Makefile.build:324: recipe for target 'drivers/net/ethernet/intel/i40e/i40e_ethtool.o' failed make[6]: *** [drivers/net/ethernet/intel/i40e/i40e_ethtool.o] Error 1 /kisskb/src/scripts/Makefile.build:583: recipe for target 'drivers/net/ethernet/intel/i40e' failed make[5]: *** [drivers/net/ethernet/intel/i40e] Error 2 make[5]: *** Waiting for unfinished jobs.... /kisskb/src/scripts/Makefile.build:583: recipe for target 'drivers/net/ethernet/intel' failed make[4]: *** [drivers/net/ethernet/intel] Error 2 make[4]: *** Waiting for unfinished jobs.... /kisskb/src/scripts/Makefile.build:583: recipe for target 'drivers/net/ethernet' failed make[3]: *** [drivers/net/ethernet] Error 2 make[3]: *** Waiting for unfinished jobs.... /kisskb/src/scripts/Makefile.build:583: recipe for target 'drivers/net' failed make[2]: *** [drivers/net] Error 2 make[2]: *** Waiting for unfinished jobs.... /kisskb/src/Makefile:1053: recipe for target 'drivers' failed make[1]: *** [drivers] Error 2 Makefile:146: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -s -j 48 ARCH=mips O=/kisskb/build/linus_mips-allmodconfig_mipsel CROSS_COMPILE=/opt/cross/kisskb/br-mipsel-o32-full-2016.08-613-ge98b4dd/bin/mipsel-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus_mips-allmodconfig_mipsel # Build took: 0:11:13.697556