linux/drivers
Linus Torvalds 642e7fd233 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()
  ...
2018-04-02 21:22:12 -07:00
..
accessibility
acpi Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-04-02 16:15:32 -07:00
amba
android ANDROID: binder: synchronize_rcu() when using POLLFREE. 2018-02-16 11:16:38 +01:00
ata arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
atm atm: iphase: fix spelling mistake: "Receiverd" -> "Received" 2018-03-30 10:10:04 -04:00
auxdisplay auxdisplay: img-ascii-lcd: Silence 2 uninitialized warnings 2018-03-13 18:16:38 +01:00
base kernel: add ksys_unshare() helper; remove in-kernel calls to sys_unshare() 2018-04-02 20:16:06 +02:00
bcma
block loop: Fix lost writes caused by missing flag 2018-03-09 08:36:36 -07:00
bluetooth Bluetooth: hci_bcm: Set pulsed_host_wake flag in sleep parameters 2018-03-15 19:39:37 +01:00
bus perf: Fix sibling iteration 2018-03-16 20:44:12 +01:00
cdrom
char char: remove blackfin OTP driver 2018-03-26 15:56:35 +02:00
clk clk: bcm2835: Protect sections updating shared registers 2018-03-19 09:27:37 -07:00
clocksource arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
connector
cpufreq cpufreq: remove cris specific drivers 2018-03-26 15:56:52 +02:00
cpuidle powerpc updates for 4.16 2018-02-02 10:01:04 -08:00
crypto s390: 2018-02-26 09:28:35 -08:00
dax dax: ->direct_access does not sleep anymore 2018-02-26 12:32:29 -08:00
dca
devfreq
dio
dma dmaengine: stm32-dmamux: fix a potential buffer overflow 2018-03-22 10:51:35 +05:30
dma-buf dma-buf/sw_sync: Fix kerneldoc warnings 2018-02-19 10:50:49 +01:00
edac arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
eisa
extcon extcon: int3496: process id-pin first so that we start with the right status 2018-02-14 06:37:33 +09:00
firewire vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
firmware Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-04-02 17:46:37 -07:00
fmc
fpga
fsi
gpio arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
gpu Merge branch 'sched-wait-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-04-02 16:50:39 -07:00
hid usb: ldusb: add PIDs for new CASSY devices supported by this driver 2018-02-15 18:44:03 +01:00
hsi vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
hv Drivers: hv: vmbus: Fix ring buffer signaling 2018-03-06 09:52:59 -08:00
hwmon Fix bad temperature display on Ryzen/Threadripper 2018-02-15 14:31:28 -08:00
hwspinlock
hwtracing perf/x86/pt, coresight: Clean up address filter structure 2018-03-29 16:07:22 +02:00
i2c arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
ide treewide: simplify Kconfig dependencies for removed archs 2018-03-26 15:55:57 +02:00
idle
iio iio: st_pressure: st_accel: pass correct platform data to init 2018-03-10 16:28:05 +00:00
infiniband Fifth pull request for 4.16-rc 2018-03-29 19:23:24 -10:00
input arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
iommu Merge branch 'x86-dma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-04-02 17:18:45 -07:00
ipack
irqchip arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
isdn treewide: simplify Kconfig dependencies for removed archs 2018-03-26 15:55:57 +02:00
leds vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
lightnvm
macintosh macintosh/via-pmu68k: Initialize PMU driver with setup_arch and arch_initcall 2018-03-19 10:22:59 +01:00
mailbox vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
mcb
md dm: fix dropped return code from dm_get_bdev_for_ioctl 2018-03-29 23:31:32 -04:00
media arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
memory memory: brcmstb: dpfe: support new way of passing data from the DCPU 2018-02-23 10:56:59 -08:00
memstick
message scsi: mptfusion: Add bounds check in mptctl_hp_targetinfo() 2018-01-30 21:32:06 -05:00
mfd vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
misc arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
mmc arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
mtd mtd: jedec_probe: Fix crash in jedec_read_mfr() 2018-03-29 19:29:06 +02:00
mux Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
net arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
nfc
ntb NTB: ntb_perf: fix cast to restricted __le32 2018-01-28 22:17:24 -05:00
nubus
nvdimm libnvdimm, nfit: fix persistence domain reporting 2018-03-21 15:12:07 -07:00
nvme nvme_fc: rework sqsize handling 2018-03-08 10:39:58 -07:00
nvmem
of Linux 4.16-rc7 2018-03-28 14:30:41 +10:00
opp opp: cpu: Replace GFP_ATOMIC with GFP_KERNEL in dev_pm_opp_init_cpufreq_table 2018-02-12 15:07:46 +05:30
oprofile
parisc
parport
pci arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
pcmcia pcmcia: remove blackfin driver 2018-03-26 15:56:41 +02:00
perf Linux 4.16-rc6 2018-03-19 20:37:35 +01:00
phy phy: qcom-ufs: add MODULE_LICENSE tag 2018-03-12 15:11:59 +05:30
pinctrl arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
platform platform-drivers-x86 for v4.16-7 2018-03-14 13:01:14 -07:00
pnp
power power supply and reset changes for the v4.16 series 2018-01-31 12:55:31 -08:00
powercap
pps vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
ps3
ptp vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
pwm pwm: remove pwm-bfin driver 2018-03-26 15:57:08 +02:00
rapidio vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
ras
regulator Merge remote-tracking branches 'regulator/fix/resume' and 'regulator/fix/stm32-vfrefbuf' into regulator-linus 2018-03-07 14:39:07 +00:00
remoteproc remoteproc updates for v4.16 2018-02-05 10:07:40 -08:00
reset
rpmsg vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
rtc rtc: remove bfin driver 2018-03-26 15:56:31 +02:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-22 14:10:29 -07:00
sbus pci-v4.16-changes 2018-02-06 09:59:40 -08:00
scsi SCSI fixes on 20180327 2018-03-27 14:11:46 -10:00
sfi
sh cpufreq: Add and use cpufreq_for_each_{valid_,}entry_idx() 2018-02-08 10:21:39 +01:00
siox
slimbus
sn
soc soc/fsl/qbman: fix issue in qman_delete_cgr_safe() 2018-03-14 13:16:23 -04:00
soundwire
spi spi: remove blackfin related host drivers 2018-03-26 15:57:05 +02:00
spmi
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git 2018-02-01 10:37:39 +02:00
staging arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
target Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2018-02-09 14:49:46 -08:00
tc
tee
thermal Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2018-02-06 15:04:58 -08:00
thunderbolt
tty Merge branch 'syscalls-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux 2018-04-02 21:22:12 -07:00
uio vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
usb arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
uwb
vfio Revert: "vfio-pci: Mask INTx if a device is not capabable of enabling it" 2018-03-21 22:50:19 -06:00
vhost vhost: validate log when IOTLB is enabled 2018-03-29 16:22:47 -04:00
video arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
virt vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
virtio virtio_ring: fix num_free handling in error case 2018-03-01 18:53:38 +02:00
visorbus
vlynq
vme
w1 Documentation updates for 4.16. New stuff includes refcount_t 2018-01-31 19:25:25 -08:00
watchdog arch: remove obsolete architecture ports 2018-04-02 20:20:12 -07:00
xen x86/dma: Remove dma_alloc_coherent_mask() 2018-03-20 10:01:56 +01:00
zorro zorro: Set up z->dev.dma_mask for the DMA API 2018-03-19 10:26:46 +01:00
Kconfig Char/Misc driver patches for 4.16-rc1 2018-02-01 10:31:17 -08:00
Makefile pci-v4.16-changes 2018-02-06 09:59:40 -08:00