]> Git Repo - linux.git/commitdiff
Merge tag 'core-entry-2020-12-14' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <[email protected]>
Tue, 15 Dec 2020 01:13:53 +0000 (17:13 -0800)
committerLinus Torvalds <[email protected]>
Tue, 15 Dec 2020 01:13:53 +0000 (17:13 -0800)
Pull core entry/exit updates from Thomas Gleixner:
 "A set of updates for entry/exit handling:

   - More generalization of entry/exit functionality

   - The consolidation work to reclaim TIF flags on x86 and also for
     non-x86 specific TIF flags which are solely relevant for syscall
     related work and have been moved into their own storage space. The
     x86 specific part had to be merged in to avoid a major conflict.

   - The TIF_NOTIFY_SIGNAL work which replaces the inefficient signal
     delivery mode of task work and results in an impressive performance
     improvement for io_uring. The non-x86 consolidation of this is
     going to come seperate via Jens.

   - The selective syscall redirection facility which provides a clean
     and efficient way to support the non-Linux syscalls of WINE by
     catching them at syscall entry and redirecting them to the user
     space emulation. This can be utilized for other purposes as well
     and has been designed carefully to avoid overhead for the regular
     fastpath. This includes the core changes and the x86 support code.

   - Simplification of the context tracking entry/exit handling for the
     users of the generic entry code which guarantee the proper ordering
     and protection.

   - Preparatory changes to make the generic entry code accomodate S390
     specific requirements which are mostly related to their syscall
     restart mechanism"

* tag 'core-entry-2020-12-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
  entry: Add syscall_exit_to_user_mode_work()
  entry: Add exit_to_user_mode() wrapper
  entry_Add_enter_from_user_mode_wrapper
  entry: Rename exit_to_user_mode()
  entry: Rename enter_from_user_mode()
  docs: Document Syscall User Dispatch
  selftests: Add benchmark for syscall user dispatch
  selftests: Add kselftest for syscall user dispatch
  entry: Support Syscall User Dispatch on common syscall entry
  kernel: Implement selective syscall userspace redirection
  signal: Expose SYS_USER_DISPATCH si_code type
  x86: vdso: Expose sigreturn address on vdso to the kernel
  MAINTAINERS: Add entry for common entry code
  entry: Fix boot for !CONFIG_GENERIC_ENTRY
  x86: Support HAVE_CONTEXT_TRACKING_OFFSTACK
  context_tracking: Only define schedule_user() on !HAVE_CONTEXT_TRACKING_OFFSTACK archs
  sched: Detect call to schedule from critical entry code
  context_tracking: Don't implement exception_enter/exit() on CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK
  context_tracking: Introduce HAVE_CONTEXT_TRACKING_OFFSTACK
  x86: Reclaim unused x86 TI flags
  ...

15 files changed:
1  2 
Documentation/admin-guide/index.rst
MAINTAINERS
arch/Kconfig
arch/x86/Kconfig
arch/x86/include/asm/vdso.h
arch/x86/kernel/cpu/mce/core.c
arch/x86/kernel/signal_compat.c
arch/x86/kernel/traps.c
include/linux/sched.h
kernel/fork.c
kernel/ptrace.c
kernel/sched/core.c
kernel/seccomp.c
kernel/signal.c
tools/testing/selftests/Makefile

index 621d1c583738d1f0c641aad3f4190ea69bff104b,b29d3c127a9516043568d5f1bda870e5755c8455..041636de29abcd9f5440ba379f3693115d715d25
@@@ -19,7 -19,6 +19,7 @@@ etc
     sysctl/index
  
     abi
 +   features
  
  This section describes CPU vulnerabilities and their mitigations.
  
@@@ -34,8 -33,7 +34,8 @@@ problems and bugs in particular
  .. toctree::
     :maxdepth: 1
  
 -   reporting-bugs
 +   reporting-issues
 +   Reporting bugs (obsolete) <reporting-bugs>
     security-bugs
     bug-hunting
     bug-bisect
@@@ -113,6 -111,7 +113,7 @@@ configure specific aspects of kernel be
     rtc
     serial-console
     svga
+    syscall-user-dispatch
     sysrq
     thunderbolt
     ufs
diff --combined MAINTAINERS
index c40aa6ddb28eeb70bc8a43206c7278790cee2198,a35248b05fa23e092cf1e3bcf8e63a830aee883e..7afa81e0c0861c5bc69ca521004f27c1ab633afd
@@@ -934,7 -934,7 +934,7 @@@ M: Evan Quan <[email protected]
  L:    [email protected]
  S:    Supported
  T:    git git://people.freedesktop.org/~agd5f/linux
 -F:    drivers/gpu/drm/amd/powerplay/
 +F:    drivers/gpu/drm/amd/pm/powerplay/
  
  AMD SEATTLE DEVICE TREE SUPPORT
  M:    Brijesh Singh <[email protected]>
@@@ -978,7 -978,7 +978,7 @@@ M: Michael Hennerich <Michael.Hennerich
  L:    [email protected]
  S:    Supported
  W:    http://ez.analog.com/community/linux-device-drivers
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7768-1.txt
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad7768-1.yaml
  F:    drivers/iio/adc/ad7768-1.c
  
  ANALOG DEVICES INC AD7780 DRIVER
@@@ -1073,7 -1073,6 +1073,7 @@@ M:      Hans Verkuil <hverkuil-cisco@xs4all.
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/i2c/adv7604*
 +F:    Documentation/devicetree/bindings/media/i2c/adv7604.yaml
  
  ANALOG DEVICES INC ADV7842 DRIVER
  M:    Hans Verkuil <[email protected]>
@@@ -1280,7 -1279,7 +1280,7 @@@ M:      Igor Russkikh <[email protected]
  L:    [email protected]
  S:    Supported
  W:    https://www.marvell.com/
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    Documentation/networking/device_drivers/ethernet/aquantia/atlantic.rst
  F:    drivers/net/ethernet/aquantia/atlantic/
  
@@@ -1487,20 -1486,10 +1487,20 @@@ F:   Documentation/devicetree/bindings/io
  F:    drivers/iommu/arm/
  F:    drivers/iommu/io-pgtable-arm*
  
 +ARM AND ARM64 SoC SUB-ARCHITECTURES (COMMON PARTS)
 +M:    Arnd Bergmann <[email protected]>
 +M:    Olof Johansson <[email protected]>
 +M:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
 +F:    arch/arm/boot/dts/Makefile
 +F:    arch/arm64/boot/dts/Makefile
 +
  ARM SUB-ARCHITECTURES
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
  F:    arch/arm/mach-*/
  F:    arch/arm/plat-*/
  
@@@ -1557,7 -1546,6 +1557,7 @@@ F:      drivers/clk/sunxi
  ARM/Allwinner sunXi SoC support
  M:    Maxime Ripard <[email protected]>
  M:    Chen-Yu Tsai <[email protected]>
 +R:    Jernej Skrabec <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git
@@@ -1735,13 -1723,11 +1735,13 @@@ F:   arch/arm/mach-ep93xx/micro9.
  
  ARM/CORESIGHT FRAMEWORK AND DRIVERS
  M:    Mathieu Poirier <[email protected]>
 -R:    Suzuki K Poulose <[email protected]>
 +M:    Suzuki K Poulose <[email protected]>
  R:    Mike Leach <[email protected]>
 +R:    Leo Yan <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux.git
  F:    Documentation/ABI/testing/sysfs-bus-coresight-devices-*
  F:    Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
  F:    Documentation/devicetree/bindings/arm/coresight-cti.yaml
@@@ -2008,6 -1994,7 +2008,6 @@@ N:      lpc18x
  
  ARM/LPC32XX SOC SUPPORT
  M:    Vladimir Zapolskiy <[email protected]>
 -M:    Sylvain Lemieux <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://github.com/vzapolskiy/linux-lpc32xx.git
@@@ -2025,6 -2012,7 +2025,6 @@@ M:      Philipp Zabel <[email protected]
  S:    Maintained
  
  ARM/Marvell Dove/MV78xx0/Orion SOC support
 -M:    Jason Cooper <[email protected]>
  M:    Andrew Lunn <[email protected]>
  M:    Sebastian Hesselbarth <[email protected]>
  M:    Gregory Clement <[email protected]>
@@@ -2041,6 -2029,7 +2041,6 @@@ F:      arch/arm/plat-orion
  F:    drivers/soc/dove/
  
  ARM/Marvell Kirkwood and Armada 370, 375, 38x, 39x, XP, 3700, 7K/8K, CN9130 SOC support
 -M:    Jason Cooper <[email protected]>
  M:    Andrew Lunn <[email protected]>
  M:    Gregory Clement <[email protected]>
  M:    Sebastian Hesselbarth <[email protected]>
@@@ -2385,7 -2374,7 +2385,7 @@@ F:      drivers/i2c/busses/i2c-rk3x.
  F:    sound/soc/rockchip/
  N:    rockchip
  
 -ARM/SAMSUNG EXYNOS ARM ARCHITECTURES
 +ARM/SAMSUNG S3C, S5P AND EXYNOS ARM ARCHITECTURES
  M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
@@@ -2414,7 -2403,15 +2414,7 @@@ N:     s3c241
  N:    s3c64xx
  N:    s5pv210
  
 -ARM/SAMSUNG MOBILE MACHINE SUPPORT
 -M:    Kyungmin Park <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -F:    arch/arm/mach-s5pv210/
 -
  ARM/SAMSUNG S5P SERIES 2D GRAPHICS ACCELERATION (G2D) SUPPORT
 -M:    Kyungmin Park <[email protected]>
 -M:    Kamil Debski <[email protected]>
  M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -2439,6 -2436,9 +2439,6 @@@ S:      Maintaine
  F:    drivers/media/platform/s5p-jpeg/
  
  ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
 -M:    Kyungmin Park <[email protected]>
 -M:    Kamil Debski <[email protected]>
 -M:    Jeongtae Park <[email protected]>
  M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -2485,7 -2485,7 +2485,7 @@@ F:      drivers/clk/socfpga
  ARM/SOCFPGA EDAC SUPPORT
  M:    Dinh Nguyen <[email protected]>
  S:    Maintained
 -F:    drivers/edac/altera_edac.
 +F:    drivers/edac/altera_edac.[ch]
  
  ARM/SPREADTRUM SoC SUPPORT
  M:    Orson Zhai <[email protected]>
@@@ -3243,12 -3243,12 +3243,12 @@@ F:   drivers/iio/accel/bma400
  BPF (Safe dynamic programs and tools)
  M:    Alexei Starovoitov <[email protected]>
  M:    Daniel Borkmann <[email protected]>
 +M:    Andrii Nakryiko <[email protected]>
  R:    Martin KaFai Lau <[email protected]>
  R:    Song Liu <[email protected]>
  R:    Yonghong Song <[email protected]>
 -R:    Andrii Nakryiko <[email protected]>
  R:    John Fastabend <[email protected]>
 -R:    KP Singh <kpsingh@chromium.org>
 +R:    KP Singh <kpsingh@kernel.org>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -3366,17 -3366,6 +3366,17 @@@ S:    Supporte
  F:    arch/x86/net/
  X:    arch/x86/net/bpf_jit_comp32.c
  
 +BPF LSM (Security Audit and Enforcement using BPF)
 +M:    KP Singh <[email protected]>
 +R:    Florent Revest <[email protected]>
 +R:    Brendan Jackman <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/bpf/bpf_lsm.rst
 +F:    include/linux/bpf_lsm.h
 +F:    kernel/bpf/bpf_lsm.c
 +F:    security/bpf/
 +
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Michael Chan <[email protected]>
  L:    [email protected]
@@@ -3549,12 -3538,11 +3549,12 @@@ BROADCOM BRCM80211 IEEE802.11n WIRELES
  M:    Arend van Spriel <[email protected]>
  M:    Franky Lin <[email protected]>
  M:    Hante Meuleman <[email protected]>
 -M:    Chi-Hsien Lin <[email protected]>
 -M:    Wright Feng <[email protected]>
 +M:    Chi-hsien Lin <[email protected]>
 +M:    Wright Feng <[email protected]>
 +M:    Chung-hsien Hsu <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -L:    brcm80211-dev-list@cypress.com
 +L:    SHA-cyfmac-dev-list@infineon.com
  S:    Supported
  F:    drivers/net/wireless/broadcom/brcm80211/
  
@@@ -3869,7 -3857,7 +3869,7 @@@ M:      Roger Quadros <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
 -F:    Documentation/devicetree/bindings/usb/cdns-usb3.txt
 +F:    Documentation/devicetree/bindings/usb/cdns,usb3.yaml
  F:    drivers/usb/cdns3/
  
  CADET FM/AM RADIO RECEIVER DRIVER
@@@ -3881,8 -3869,9 +3881,8 @@@ T:      git git://linuxtv.org/media_tree.gi
  F:    drivers/media/radio/radio-cadet*
  
  CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER
 -M:    Jonathan Corbet <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/admin-guide/media/cafe_ccic*
  F:    drivers/media/platform/marvell-ccic/
@@@ -4295,7 -4284,6 +4295,7 @@@ B:      https://github.com/ClangBuiltLinux/l
  C:    irc://chat.freenode.net/clangbuiltlinux
  F:    Documentation/kbuild/llvm.rst
  F:    scripts/clang-tools/
 +F:    scripts/lld-version.sh
  K:    \b(?i:clang|llvm)\b
  
  CLEANCACHE API
@@@ -4363,7 -4351,7 +4363,7 @@@ CODA V4L2 MEM2MEM DRIVE
  M:    Philipp Zabel <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/media/coda.txt
 +F:    Documentation/devicetree/bindings/media/coda.yaml
  F:    drivers/media/platform/coda/
  
  CODE OF CONDUCT
@@@ -4722,7 -4710,7 +4722,7 @@@ T:      git git://linuxtv.org/anttip/media_t
  F:    drivers/media/dvb-frontends/cxd2820r*
  
  CXGB3 ETHERNET DRIVER (CXGB3)
 -M:    Vishal Kulkarni <vishal@chelsio.com>
 +M:    Raju Rangoju <rajur@chelsio.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
@@@ -4754,7 -4742,7 +4754,7 @@@ W:      http://www.chelsio.co
  F:    drivers/net/ethernet/chelsio/inline_crypto/
  
  CXGB4 ETHERNET DRIVER (CXGB4)
 -M:    Vishal Kulkarni <vishal@chelsio.com>
 +M:    Raju Rangoju <rajur@chelsio.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
@@@ -4776,7 -4764,7 +4776,7 @@@ F:      drivers/infiniband/hw/cxgb4
  F:    include/uapi/rdma/cxgb4-abi.h
  
  CXGB4VF ETHERNET DRIVER (CXGB4VF)
 -M:    Vishal Kulkarni <vishal@gmail.com>
 +M:    Raju Rangoju <rajur@chelsio.com>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
@@@ -5588,13 -5576,6 +5588,13 @@@ T:    git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/panel/novatek,nt35510.yaml
  F:    drivers/gpu/drm/panel/panel-novatek-nt35510.c
  
 +DRM DRIVER FOR NOVATEK NT36672A PANELS
 +M:    Sumit Semwal <[email protected]>
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    Documentation/devicetree/bindings/display/panel/novatek,nt36672a.yaml
 +F:    drivers/gpu/drm/panel/panel-novatek-nt36672a.c
 +
  DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS
  M:    Ben Skeggs <[email protected]>
  L:    [email protected]
@@@ -5882,7 -5863,6 +5882,7 @@@ S:      Supporte
  F:    Documentation/devicetree/bindings/display/mediatek/
  F:    drivers/gpu/drm/mediatek/
  F:    drivers/phy/mediatek/phy-mtk-hdmi*
 +F:    drivers/phy/mediatek/phy-mtk-mipi*
  
  DRM DRIVERS FOR NVIDIA TEGRA
  M:    Thierry Reding <[email protected]>
@@@ -5975,7 -5955,6 +5975,7 @@@ F:      include/uapi/drm/v3d_drm.
  
  DRM DRIVERS FOR VC4
  M:    Eric Anholt <[email protected]>
 +M:    Maxime Ripard <[email protected]>
  S:    Supported
  T:    git git://github.com/anholt/linux
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/edac/ie31200_edac.c
  
 +EDAC-IGEN6
 +M:    Tony Luck <[email protected]>
 +R:    Qiuxu Zhuo <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/edac/igen6_edac.c
 +
  EDAC-MPC85XX
  M:    Johannes Thumshirn <[email protected]>
  L:    [email protected]
@@@ -6426,7 -6398,7 +6426,7 @@@ EDAC-SKYLAK
  M:    Tony Luck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/edac/skx_*.c
 +F:    drivers/edac/skx_*.[ch]
  
  EDAC-TI
  M:    Tero Kristo <[email protected]>
@@@ -6642,7 -6614,6 +6642,7 @@@ Q:      http://patchwork.ozlabs.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git
  F:    Documentation/filesystems/ext4/
  F:    fs/ext4/
 +F:    include/trace/events/ext4.h
  
  Extended Verification Module (EVM)
  M:    Mimi Zohar <[email protected]>
@@@ -6940,9 -6911,10 +6940,9 @@@ F:     drivers/net/wan/dlci.
  F:    drivers/net/wan/sdla.c
  
  FRAMEBUFFER LAYER
 -M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  Q:    http://patchwork.kernel.org/project/linux-fbdev/list/
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/fb/
@@@ -7361,6 -7333,17 +7361,17 @@@ S:    Maintaine
  F:    drivers/base/arch_topology.c
  F:    include/linux/arch_topology.h
  
+ GENERIC ENTRY CODE
+ M:    Thomas Gleixner <[email protected]>
+ M:    Peter Zijlstra <[email protected]>
+ M:    Andy Lutomirski <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/entry
+ F:    include/linux/entry-common.h
+ F:    include/linux/entry-kvm.h
+ F:    kernel/entry/
  GENERIC GPIO I2C DRIVER
  M:    Wolfram Sang <[email protected]>
  S:    Supported
@@@ -7944,7 -7927,7 +7955,7 @@@ HISILICON LPC BUS DRIVE
  M:    [email protected]
  S:    Maintained
  W:    http://www.hisilicon.com
 -F:    Documentation/devicetree/bindings/arm/hisilicon/hisilicon-low-pin-count.txt
 +F:    Documentation/devicetree/bindings/arm/hisilicon/low-pin-count.yaml
  F:    drivers/bus/hisi_lpc.c
  
  HISILICON NETWORK SUBSYSTEM 3 DRIVER (HNS3)
@@@ -8023,7 -8006,7 +8034,7 @@@ F:      drivers/staging/hikey9xx
  HISILICON TRUE RANDOM NUMBER GENERATOR V2 SUPPORT
  M:    Zaibo Xu <[email protected]>
  S:    Maintained
 -F:    drivers/char/hw_random/hisi-trng-v2.c
 +F:    drivers/crypto/hisilicon/trng/trng.c
  
  HISILICON V3XX SPI NOR FLASH Controller Driver
  M:    John Garry <[email protected]>
@@@ -8857,8 -8840,8 +8868,8 @@@ S:      Supporte
  W:    http://www.intel.com/support/feedback.htm
  W:    http://e1000.sourceforge.net/
  Q:    http://patchwork.ozlabs.org/project/intel-wired-lan/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue.git
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git
  F:    Documentation/networking/device_drivers/ethernet/intel/
  F:    drivers/net/ethernet/intel/
  F:    drivers/net/ethernet/intel/*/
@@@ -8982,23 -8965,6 +8993,23 @@@ M:    Deepak Saxena <[email protected]
  S:    Maintained
  F:    drivers/char/hw_random/ixp4xx-rng.c
  
 +INTEL KEEM BAY DRM DRIVER
 +M:    Anitha Chrisanthus <[email protected]>
 +M:    Edmund Dea <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/intel,kmb_display.yaml
 +F:    drivers/gpu/drm/kmb/
 +
 +INTEL KEEM BAY OCS AES/SM4 CRYPTO DRIVER
 +M:    Daniele Alessandrelli <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/crypto/intel,keembay-ocs-aes.yaml
 +F:    drivers/crypto/keembay/Kconfig
 +F:    drivers/crypto/keembay/Makefile
 +F:    drivers/crypto/keembay/keembay-ocs-aes-core.c
 +F:    drivers/crypto/keembay/ocs-aes.c
 +F:    drivers/crypto/keembay/ocs-aes.h
 +
  INTEL MANAGEMENT ENGINE (mei)
  M:    Tomas Winkler <[email protected]>
  L:    [email protected]
@@@ -9121,7 -9087,10 +9132,7 @@@ S:     Supporte
  F:    drivers/net/wireless/intel/iwlegacy/
  
  INTEL WIRELESS WIFI LINK (iwlwifi)
 -M:    Johannes Berg <[email protected]>
 -M:    Emmanuel Grumbach <[email protected]>
  M:    Luca Coelho <[email protected]>
 -M:    Intel Linux Wireless <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
@@@ -9167,19 -9136,6 +9178,19 @@@ F:    Documentation/x86/intel_txt.rs
  F:    arch/x86/kernel/tboot.c
  F:    include/linux/tboot.h
  
 +INTEL SGX
 +M:    Jarkko Sakkinen <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +Q:    https://patchwork.kernel.org/project/intel-sgx/list/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-sgx.git
 +F:    Documentation/x86/sgx.rst
 +F:    arch/x86/entry/vdso/vsgx.S
 +F:    arch/x86/include/uapi/asm/sgx.h
 +F:    arch/x86/kernel/cpu/sgx/*
 +F:    tools/testing/selftests/sgx/*
 +K:    \bSGX_
 +
  INTERCONNECT API
  M:    Georgi Djakov <[email protected]>
  L:    [email protected]
@@@ -9226,7 -9182,6 +9237,7 @@@ F:      include/linux/iomap.
  
  IOMMU DRIVERS
  M:    Joerg Roedel <[email protected]>
 +M:    Will Deacon <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
@@@ -9310,6 -9265,7 +9321,6 @@@ F:      kernel/irq
  
  IRQCHIP DRIVERS
  M:    Thomas Gleixner <[email protected]>
 -M:    Jason Cooper <[email protected]>
  M:    Marc Zyngier <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9709,7 -9665,6 +9720,7 @@@ F:      Documentation/virt/kvm/s390
  F:    arch/s390/include/asm/gmap.h
  F:    arch/s390/include/asm/kvm*
  F:    arch/s390/include/uapi/asm/kvm*
 +F:    arch/s390/kernel/uv.c
  F:    arch/s390/kvm/
  F:    arch/s390/mm/gmap.c
  F:    tools/testing/selftests/kvm/*/s390x/
@@@ -9898,6 -9853,13 +9909,6 @@@ S:     Maintaine
  F:    arch/mips/lantiq
  F:    drivers/soc/lantiq
  
 -LAPB module
 -L:    [email protected]
 -S:    Orphan
 -F:    Documentation/networking/lapb-module.rst
 -F:    include/*/lapb.h
 -F:    net/lapb/
 -
  LASI 53c700 driver for PARISC
  M:    "James E.J. Bottomley" <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.mac.linux-m68k.org/
  F:    arch/m68k/mac/
 +F:    drivers/macintosh/adb-iop.c
 +F:    drivers/macintosh/via-macii.c
  
  M68K ON HP9000/300
  M:    Philip Blundell <[email protected]>
@@@ -10610,13 -10570,6 +10621,13 @@@ S: Supporte
  F:    Documentation/networking/device_drivers/ethernet/marvell/octeontx2.rst
  F:    drivers/net/ethernet/marvell/octeontx2/af/
  
 +MARVELL PRESTERA ETHERNET SWITCH DRIVER
 +M:    Vadym Kochan <[email protected]>
 +M:    Taras Chornyi <[email protected]>
 +S:    Supported
 +W:    https://github.com/Marvell-switching/switchdev-prestera
 +F:    drivers/net/ethernet/marvell/prestera/
 +
  MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
  M:    Nicolas Pitre <[email protected]>
  S:    Odd Fixes
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/admin-guide/media/imx7.rst
 -F:    Documentation/devicetree/bindings/media/imx7-csi.txt
 -F:    Documentation/devicetree/bindings/media/imx7-mipi-csi2.txt
 +F:    Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml
 +F:    Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml
  F:    drivers/staging/media/imx/imx7-media-csi.c
  F:    drivers/staging/media/imx/imx7-mipi-csis.c
  
@@@ -11221,7 -11174,7 +11232,7 @@@ F:   Documentation/devicetree/bindings/in
  F:    drivers/input/touchscreen/melfas_mip4.c
  
  MELLANOX BLUEFIELD I2C DRIVER
 -M:    Khalil Blaiech <kblaiech@mellanox.com>
 +M:    Khalil Blaiech <kblaiech@nvidia.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/i2c/busses/i2c-mlxbf.c
@@@ -11231,7 -11184,7 +11242,7 @@@ M:   Tariq Toukan <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx4/en_*
  
  MELLANOX ETHERNET DRIVER (mlx5e)
@@@ -11239,7 -11192,7 +11250,7 @@@ M:   Saeed Mahameed <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_*
  
  MELLANOX ETHERNET INNOVA DRIVERS
@@@ -11247,7 -11200,7 +11258,7 @@@ R:   Boris Pismenny <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx5/core/accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_accel/*
  F:    drivers/net/ethernet/mellanox/mlx5/core/fpga/*
@@@ -11259,7 -11212,7 +11270,7 @@@ M:   Ido Schimmel <[email protected]
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlxsw/
  F:    tools/testing/selftests/drivers/net/mlxsw/
  
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlxfw/
  
  MELLANOX HARDWARE PLATFORM SUPPORT
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    drivers/net/ethernet/mellanox/mlx4/
  F:    include/linux/mlx4/
  
  L:    [email protected]
  S:    Supported
  W:    http://www.mellanox.com
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  F:    Documentation/networking/device_drivers/ethernet/mellanox/
  F:    drivers/net/ethernet/mellanox/mlx5/core/
  F:    include/linux/mlx5/
@@@ -11450,15 -11403,6 +11461,15 @@@ F: Documentation/devicetree/bindings/me
  F:    drivers/media/cec/platform/meson/ao-cec-g12a.c
  F:    drivers/media/cec/platform/meson/ao-cec.c
  
 +MESON GE2D DRIVER FOR AMLOGIC SOCS
 +M:    Neil Armstrong <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/amlogic,axg-ge2d.yaml
 +F:    drivers/media/meson/ge2d/
 +
  MESON NAND CONTROLLER DRIVER FOR AMLOGIC SOCS
  M:    Liang Yang <[email protected]>
  L:    [email protected]
@@@ -11708,17 -11652,6 +11719,17 @@@ M: Oliver Neukum <[email protected]
  S:    Maintained
  F:    drivers/usb/image/microtek.*
  
 +MIPI CCS, SMIA AND SMIA++ IMAGE SENSOR DRIVER
 +M:    Sakari Ailus <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml
 +F:    Documentation/driver-api/media/drivers/ccs/
 +F:    drivers/media/i2c/ccs-pll.c
 +F:    drivers/media/i2c/ccs-pll.h
 +F:    drivers/media/i2c/ccs/
 +F:    include/uapi/linux/smiapp.h
 +
  MIPS
  M:    Thomas Bogendoerfer <[email protected]>
  L:    [email protected]
@@@ -11989,7 -11922,7 +12000,7 @@@ M:   Jacopo Mondi <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.txt
 +F:    Documentation/devicetree/bindings/media/i2c/aptina,mt9v111.yaml
  F:    drivers/media/i2c/mt9v111.c
  
  MULTIFUNCTION DEVICES (MFD)
@@@ -12208,7 -12141,7 +12219,7 @@@ M:   Jakub Kicinski <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    http://www.linuxfoundation.org/en/Net
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
  F:    Documentation/devicetree/bindings/net/
@@@ -12253,7 -12186,7 +12264,7 @@@ M:   Jakub Kicinski <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    http://www.linuxfoundation.org/en/Net
 -Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +Q:    https://patchwork.kernel.org/project/netdevbpf/list/
  B:    mailto:[email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
@@@ -12934,14 -12867,6 +12945,14 @@@ M: Harald Welte <[email protected]
  S:    Maintained
  F:    drivers/char/pcmcia/cm4040_cs.*
  
 +OMNIVISION OV02A10 SENSOR DRIVER
 +M:    Dongchun Zhu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml
 +F:    drivers/media/i2c/ov02a10.c
 +
  OMNIVISION OV13858 SENSOR DRIVER
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
@@@ -12954,7 -12879,7 +12965,7 @@@ M:   Rui Miguel Silva <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/ov2680.txt
 +F:    Documentation/devicetree/bindings/media/i2c/ov2680.yaml
  F:    drivers/media/i2c/ov2680.c
  
  OMNIVISION OV2685 SENSOR DRIVER
@@@ -13012,8 -12937,9 +13023,8 @@@ T:   git git://linuxtv.org/media_tree.gi
  F:    drivers/media/i2c/ov5695.c
  
  OMNIVISION OV7670 SENSOR DRIVER
 -M:    Jonathan Corbet <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/i2c/ov7670.txt
  F:    drivers/media/i2c/ov7670.c
@@@ -13023,7 -12949,7 +13034,7 @@@ M:   Jacopo Mondi <[email protected]
  L:    [email protected]
  S:    Odd fixes
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/ov772x.txt
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov772x.yaml
  F:    drivers/media/i2c/ov772x.c
  F:    include/media/i2c/ov772x.h
  
@@@ -13059,14 -12985,6 +13070,14 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/i2c/ov9650.txt
  F:    drivers/media/i2c/ov9650.c
  
 +OMNIVISION OV9734 SENSOR DRIVER
 +M:    Tianshu Qiu <[email protected]>
 +R:    Bingbu Cao <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/i2c/ov9734.c
 +
  ONENAND FLASH DRIVER
  M:    Kyungmin Park <[email protected]>
  L:    [email protected]
@@@ -13269,9 -13187,7 +13280,9 @@@ M:   Jesper Dangaard Brouer <hawk@kernel.
  M:    Ilias Apalodimas <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/networking/page_pool.rst
  F:    include/net/page_pool.h
 +F:    include/trace/events/page_pool.h
  F:    net/core/page_pool.c
  
  PANASONIC LAPTOP ACPI EXTRAS DRIVER
@@@ -13499,6 -13415,7 +13510,6 @@@ F:   drivers/pci/controller/mobiveil/pcie
  
  PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
  M:    Thomas Petazzoni <[email protected]>
 -M:    Jason Cooper <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -14304,6 -14221,7 +14315,6 @@@ F:   drivers/media/usb/pwc/
  F:    include/trace/events/pwc.h
  
  PWM FAN DRIVER
 -M:    Kamil Debski <[email protected]>
  M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -14539,7 -14457,6 +14550,7 @@@ W:   https://wireless.wiki.kernel.org/en/
  F:    drivers/net/wireless/ath/ath9k/
  
  QUALCOMM CAMERA SUBSYSTEM DRIVER
 +M:    Robert Foss <[email protected]>
  M:    Todor Tomov <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -14621,14 -14538,6 +14632,14 @@@ F: Documentation/devicetree/bindings/ma
  F:    drivers/mailbox/qcom-ipcc.c
  F:    include/dt-bindings/mailbox/qcom-ipcc.h
  
 +QUALCOMM IPQ4019 VQMMC REGULATOR DRIVER
 +M:    Robert Marko <[email protected]>
 +M:    Luka Perkov <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/regulator/vqmmc-ipq4019-regulator.yaml
 +F:    drivers/regulator/vqmmc-ipq4019-regulator.c
 +
  QUALCOMM RMNET DRIVER
  M:    Subash Abhinov Kasiviswanathan <[email protected]>
  M:    Sean Tranchetti <[email protected]>
@@@ -14913,7 -14822,7 +14924,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    drivers/net/wireless/realtek/rtlwifi/
  
  REALTEK WIRELESS DRIVER (rtw88)
 -M:    Yan-Hsuan Chuang <yhchuang@realtek.com>
 +M:    Yan-Hsuan Chuang <tony0620emma@gmail.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/wireless/realtek/rtw88/
@@@ -14984,6 -14893,7 +14995,6 @@@ RENESAS ETHERNET DRIVER
  R:    Sergei Shtylyov <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -F:    Documentation/devicetree/bindings/net/renesas,*.txt
  F:    Documentation/devicetree/bindings/net/renesas,*.yaml
  F:    drivers/net/ethernet/renesas/
  F:    include/linux/sh_eth.h
@@@ -15029,7 -14939,6 +15040,7 @@@ M:   Philipp Zabel <[email protected]
  S:    Maintained
  T:    git git://git.pengutronix.de/git/pza/linux
  F:    Documentation/devicetree/bindings/reset/
 +F:    Documentation/driver-api/reset.rst
  F:    drivers/reset/
  F:    include/dt-bindings/reset/
  F:    include/linux/reset-controller.h
@@@ -15114,13 -15023,10 +15125,13 @@@ ROCKCHIP ISP V1 DRIVE
  M:    Helen Koike <[email protected]>
  M:    Dafna Hirschfeld <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/admin-guide/media/rkisp1.rst
 +F:    Documentation/devicetree/bindings/media/rockchip-isp1.yaml
  F:    Documentation/userspace-api/media/v4l/pixfmt-meta-rkisp1.rst
 -F:    drivers/staging/media/rkisp1/
 +F:    drivers/media/platform/rockchip/rkisp1
 +F:    include/uapi/linux/rkisp1-config.h
  
  ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
  M:    Jacob Chen <[email protected]>
@@@ -15344,6 -15250,7 +15355,6 @@@ F:   drivers/iommu/s390-iommu.
  S390 IUCV NETWORK LAYER
  M:    Julian Wiedmann <[email protected]>
  M:    Karsten Graul <[email protected]>
 -M:    Ursula Braun <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -15354,6 -15261,7 +15365,6 @@@ F:   net/iucv
  S390 NETWORK DRIVERS
  M:    Julian Wiedmann <[email protected]>
  M:    Karsten Graul <[email protected]>
 -M:    Ursula Braun <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.ibm.com/developerworks/linux/linux390/
@@@ -15522,12 -15430,14 +15533,12 @@@ F:        Documentation/devicetree/bindings/ne
  F:    drivers/nfc/s3fwrn5
  
  SAMSUNG S5C73M3 CAMERA DRIVER
 -M:    Kyungmin Park <[email protected]>
  M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/media/i2c/s5c73m3/*
  
  SAMSUNG S5K5BAF CAMERA DRIVER
 -M:    Kyungmin Park <[email protected]>
  M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -15545,6 -15455,7 +15556,6 @@@ F:   Documentation/devicetree/bindings/cr
  F:    drivers/crypto/s5p-sss.c
  
  SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
 -M:    Kyungmin Park <[email protected]>
  M:    Sylwester Nawrocki <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -15592,6 -15503,7 +15603,6 @@@ T:   git https://github.com/lmajewski/lin
  F:    drivers/thermal/samsung/
  
  SAMSUNG USB2 PHY DRIVER
 -M:    Kamil Debski <[email protected]>
  M:    Sylwester Nawrocki <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -15890,8 -15802,9 +15901,8 @@@ F:   drivers/slimbus
  F:    include/linux/slimbus.h
  
  SFC NETWORK DRIVER
 -M:    Solarflare linux maintainers <[email protected]>
 -M:    Edward Cree <[email protected]>
 -M:    Martin Habets <[email protected]>
 +M:    Edward Cree <[email protected]>
 +M:    Martin Habets <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/net/ethernet/sfc/
@@@ -15908,18 -15821,18 +15919,18 @@@ F:        include/linux/sfp.
  K:    phylink\.h|struct\s+phylink|\.phylink|>phylink_|phylink_(autoneg|clear|connect|create|destroy|disconnect|ethtool|helper|mac|mii|of|set|start|stop|test|validate)
  
  SGI GRU DRIVER
 -M:    Dimitri Sivanich <sivanich@sgi.com>
 +M:    Dimitri Sivanich <dimitri.sivanich@hpe.com>
  S:    Maintained
  F:    drivers/misc/sgi-gru/
  
  SGI XP/XPC/XPNET DRIVER
 -M:    Cliff Whickman <[email protected]>
  M:    Robin Holt <[email protected]>
 +M:    Steve Wahl <[email protected]>
 +R:    Mike Travis <[email protected]>
  S:    Maintained
  F:    drivers/misc/sgi-xp/
  
  SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
 -M:    Ursula Braun <[email protected]>
  M:    Karsten Graul <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -16200,6 -16113,16 +16211,6 @@@ S:  Maintaine
  F:    drivers/firmware/smccc/
  F:    include/linux/arm-smccc.h
  
 -SMIA AND SMIA++ IMAGE SENSOR DRIVER
 -M:    Sakari Ailus <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/devicetree/bindings/media/i2c/nokia,smia.txt
 -F:    drivers/media/i2c/smiapp-pll.c
 -F:    drivers/media/i2c/smiapp-pll.h
 -F:    drivers/media/i2c/smiapp/
 -F:    include/uapi/linux/smiapp.h
 -
  SMM665 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
@@@ -16362,7 -16285,7 +16373,7 @@@ M:   Ricardo Ribalda <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/sony,imx214.txt
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx214.yaml
  F:    drivers/media/i2c/imx214.c
  
  SONY IMX219 SENSOR DRIVER
@@@ -18171,7 -18094,7 +18182,7 @@@ M:   Yu Chen <[email protected]
  M:    Binghui Wang <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/phy/phy-hi3660-usb3.txt
 +F:    Documentation/devicetree/bindings/phy/hisilicon,hi3660-usb3.yaml
  F:    drivers/phy/hisilicon/phy-hi3660-usb3.c
  
  USB ISP116X DRIVER
  S:    Supported
  F:    drivers/usb/class/usblp.c
  
 +USB RAW GADGET DRIVER
 +R:    Andrey Konovalov <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/usb/raw-gadget.rst
 +F:    drivers/usb/gadget/legacy/raw_gadget.c
 +F:    include/uapi/linux/usb/raw_gadget.h
 +
  USB QMI WWAN NETWORK DRIVER
  M:    Bjørn Mork <[email protected]>
  L:    [email protected]
@@@ -18458,12 -18373,6 +18469,12 @@@ F: include/uapi/linux/uuid.
  F:    lib/test_uuid.c
  F:    lib/uuid.c
  
 +UV SYSFS DRIVER
 +M:    Justin Ernst <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/x86/uv_sysfs.c
 +
  UVESAFB DRIVER
  M:    Michal Januszewski <[email protected]>
  L:    [email protected]
@@@ -19095,18 -19004,12 +19106,18 @@@ L:        [email protected]
  S:    Maintained
  N:    axp[128]
  
 -X.25 NETWORK LAYER
 -M:    Andrew Hendry <[email protected]>
 +X.25 STACK
 +M:    Martin Schiller <[email protected]>
  L:    [email protected]
 -S:    Odd Fixes
 +S:    Maintained
 +F:    Documentation/networking/lapb-module.rst
  F:    Documentation/networking/x25*
 +F:    drivers/net/wan/hdlc_x25.c
 +F:    drivers/net/wan/lapbether.c
 +F:    include/*/lapb.h
  F:    include/net/x25*
 +F:    include/uapi/linux/x25.h
 +F:    net/lapb/
  F:    net/x25/
  
  X86 ARCHITECTURE (32-BIT AND 64-BIT)
@@@ -19170,7 -19073,6 +19181,7 @@@ F:   arch/x86/platfor
  
  X86 PLATFORM UV HPE SUPERDOME FLEX
  M:    Steve Wahl <[email protected]>
 +R:    Mike Travis <[email protected]>
  R:    Dimitri Sivanich <[email protected]>
  R:    Russ Anderson <[email protected]>
  S:    Supported
@@@ -19221,17 -19123,12 +19232,17 @@@ L:        [email protected]
  L:    [email protected]
  S:    Supported
  F:    include/net/xdp.h
 +F:    include/net/xdp_priv.h
  F:    include/trace/events/xdp.h
  F:    kernel/bpf/cpumap.c
  F:    kernel/bpf/devmap.c
  F:    net/core/xdp.c
 -N:    xdp
 -K:    xdp
 +F:    samples/bpf/xdp*
 +F:    tools/testing/selftests/bpf/*xdp*
 +F:    tools/testing/selftests/bpf/*/*xdp*
 +F:    drivers/net/ethernet/*/*/*/*/*xdp*
 +F:    drivers/net/ethernet/*/*/*xdp*
 +K:    (?:\b|_)xdp(?:\b|_)
  
  XDP SOCKETS (AF_XDP)
  M:    Björn Töpel <[email protected]>
@@@ -19240,12 -19137,9 +19251,12 @@@ R: Jonathan Lemon <jonathan.lemon@gmail
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/networking/af_xdp.rst
  F:    include/net/xdp_sock*
  F:    include/net/xsk_buff_pool.h
  F:    include/uapi/linux/if_xdp.h
 +F:    include/uapi/linux/xdp_diag.h
 +F:    include/net/netns/xdp.h
  F:    net/xdp/
  F:    samples/bpf/xdpsock*
  F:    tools/lib/bpf/xsk*
@@@ -19513,13 -19407,6 +19524,13 @@@ T: git git://git.kernel.org/pub/scm/lin
  F:    Documentation/filesystems/zonefs.rst
  F:    fs/zonefs/
  
 +ZPOOL COMPRESSED PAGE STORAGE API
 +M:    Dan Streetman <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    include/linux/zpool.h
 +F:    mm/zpool.c
 +
  ZR36067 VIDEO FOR LINUX DRIVER
  M:    Corentin Labbe <[email protected]>
  L:    [email protected]
@@@ -19530,6 -19417,13 +19541,6 @@@ Q:  https://patchwork.linuxtv.org/projec
  F:    Documentation/driver-api/media/drivers/zoran.rst
  F:    drivers/staging/media/zoran/
  
 -ZPOOL COMPRESSED PAGE STORAGE API
 -M:    Dan Streetman <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    include/linux/zpool.h
 -F:    mm/zpool.c
 -
  ZRAM COMPRESSED RAM BLOCK DEVICE DRVIER
  M:    Minchan Kim <[email protected]>
  M:    Nitin Gupta <[email protected]>
diff --combined arch/Kconfig
index ba4e966484ab571b0f541336f8c2b212cca4493a,090ef3566c56381cf34f3e1d82e8240b2a539725..7a3371d28508cb709940bad53d07744ad5c81c5b
@@@ -618,6 -618,23 +618,23 @@@ config HAVE_CONTEXT_TRACKIN
          protected inside rcu_irq_enter/rcu_irq_exit() but preemption or signal
          handling on irq exit still need to be protected.
  
+ config HAVE_CONTEXT_TRACKING_OFFSTACK
+       bool
+       help
+         Architecture neither relies on exception_enter()/exception_exit()
+         nor on schedule_user(). Also preempt_schedule_notrace() and
+         preempt_schedule_irq() can't be called in a preemptible section
+         while context tracking is CONTEXT_USER. This feature reflects a sane
+         entry implementation where the following requirements are met on
+         critical entry code, ie: before user_exit() or after user_enter():
+         - Critical entry code isn't preemptible (or better yet:
+           not interruptible).
+         - No use of RCU read side critical sections, unless rcu_nmi_enter()
+           got called.
+         - No use of instrumentation, unless instrumentation_begin() got
+           called.
  config HAVE_TIF_NOHZ
        bool
        help
@@@ -1028,15 -1045,6 +1045,15 @@@ config HAVE_STATIC_CALL_INLIN
        bool
        depends on HAVE_STATIC_CALL
  
 +config ARCH_WANT_LD_ORPHAN_WARN
 +      bool
 +      help
 +        An arch should select this symbol once all linker sections are explicitly
 +        included, size-asserted, or discarded in the linker scripts. This is
 +        important because we never want expected sections to be placed heuristically
 +        by the linker, since the locations of such sections can change between linker
 +        versions.
 +
  source "kernel/gcov/Kconfig"
  
  source "scripts/gcc-plugins/Kconfig"
diff --combined arch/x86/Kconfig
index 52e36adb5112eabc0f7492f8c67d36c73bd39389,d793361839b589d1dc773fcc2ff14b920e07205a..88a4fa909766438fed7998477a8362e8c4077b93
@@@ -100,7 -100,6 +100,7 @@@ config X8
        select ARCH_WANT_DEFAULT_BPF_JIT        if X86_64
        select ARCH_WANTS_DYNAMIC_TASK_STRUCT
        select ARCH_WANT_HUGE_PMD_SHARE
 +      select ARCH_WANT_LD_ORPHAN_WARN
        select ARCH_WANTS_THP_SWAP              if X86_64
        select BUILDTIME_TABLE_SORT
        select CLKEVT_I8253
        select HAVE_CMPXCHG_DOUBLE
        select HAVE_CMPXCHG_LOCAL
        select HAVE_CONTEXT_TRACKING            if X86_64
+       select HAVE_CONTEXT_TRACKING_OFFSTACK   if HAVE_CONTEXT_TRACKING
        select HAVE_C_RECORDMCOUNT
        select HAVE_DEBUG_KMEMLEAK
        select HAVE_DMA_CONTIGUOUS
@@@ -1931,23 -1931,6 +1932,23 @@@ config X86_INTEL_TSX_MODE_AUT
          side channel attacks- equals the tsx=auto command line parameter.
  endchoice
  
 +config X86_SGX
 +      bool "Software Guard eXtensions (SGX)"
 +      depends on X86_64 && CPU_SUP_INTEL
 +      depends on CRYPTO=y
 +      depends on CRYPTO_SHA256=y
 +      select SRCU
 +      select MMU_NOTIFIER
 +      help
 +        Intel(R) Software Guard eXtensions (SGX) is a set of CPU instructions
 +        that can be used by applications to set aside private regions of code
 +        and data, referred to as enclaves. An enclave's private memory can
 +        only be accessed by code running within the enclave. Accesses from
 +        outside the enclave, including other enclaves, are disallowed by
 +        hardware.
 +
 +        If unsure, say N.
 +
  config EFI
        bool "EFI runtime service support"
        depends on ACPI
index b5d23470f56bb332e172407a4db5f052dbb97a0e,589f489dd375e6ef53c644c447a9c51400d3f216..98aa103eb4ab4af3204c03cbe6aecefd3da76407
@@@ -15,8 -15,6 +15,8 @@@ struct vdso_image 
        unsigned long size;   /* Always a multiple of PAGE_SIZE */
  
        unsigned long alt, alt_len;
 +      unsigned long extable_base, extable_len;
 +      const void *extable;
  
        long sym_vvar_start;  /* Negative offset to the vvar area */
  
@@@ -29,6 -27,8 +29,8 @@@
        long sym___kernel_rt_sigreturn;
        long sym___kernel_vsyscall;
        long sym_int80_landing_pad;
+       long sym_vdso32_sigreturn_landing_pad;
+       long sym_vdso32_rt_sigreturn_landing_pad;
  };
  
  #ifdef CONFIG_X86_64
@@@ -47,9 -47,6 +49,9 @@@ extern void __init init_vdso_image(cons
  
  extern int map_vdso_once(const struct vdso_image *image, unsigned long addr);
  
 +extern bool fixup_vdso_exception(struct pt_regs *regs, int trapnr,
 +                               unsigned long error_code,
 +                               unsigned long fault_addr);
  #endif /* __ASSEMBLER__ */
  
  #endif /* _ASM_X86_VDSO_H */
index 6af6a3c0698fdd1a62bcb6b68ac337e990a325c8,f5c860b1a50bc1d0073e3a30da5ee6c39d5e1381..13d3f1cbda176711069606c6dacbe2900579c208
@@@ -162,8 -162,7 +162,8 @@@ EXPORT_SYMBOL_GPL(mce_log)
  
  void mce_register_decode_chain(struct notifier_block *nb)
  {
 -      if (WARN_ON(nb->priority > MCE_PRIO_MCELOG && nb->priority < MCE_PRIO_EDAC))
 +      if (WARN_ON(nb->priority < MCE_PRIO_LOWEST ||
 +                  nb->priority > MCE_PRIO_HIGHEST))
                return;
  
        blocking_notifier_chain_register(&x86_mce_decoder_chain, nb);
@@@ -1266,14 -1265,14 +1266,14 @@@ static void kill_me_maybe(struct callba
        }
  }
  
 -static void queue_task_work(struct mce *m, int kill_it)
 +static void queue_task_work(struct mce *m, int kill_current_task)
  {
        current->mce_addr = m->addr;
        current->mce_kflags = m->kflags;
        current->mce_ripv = !!(m->mcgstatus & MCG_STATUS_RIPV);
        current->mce_whole_page = whole_page(m);
  
 -      if (kill_it)
 +      if (kill_current_task)
                current->mce_kill_me.func = kill_me_now;
        else
                current->mce_kill_me.func = kill_me_maybe;
@@@ -1321,10 -1320,10 +1321,10 @@@ noinstr void do_machine_check(struct pt
        int no_way_out = 0;
  
        /*
 -       * If kill_it gets set, there might be a way to recover from this
 +       * If kill_current_task is not set, there might be a way to recover from this
         * error.
         */
 -      int kill_it = 0;
 +      int kill_current_task = 0;
  
        /*
         * MCEs are always local on AMD. Same is determined by MCG_STATUS_LMCES
         * severity is MCE_AR_SEVERITY we have other options.
         */
        if (!(m.mcgstatus & MCG_STATUS_RIPV))
 -              kill_it = 1;
 -
 +              kill_current_task = (cfg->tolerant == 3) ? 0 : 1;
        /*
         * Check if this MCE is signaled to only this logical processor,
         * on Intel, Zhaoxin only.
         * to see it will clear it.
         */
        if (lmce) {
 -              if (no_way_out)
 +              if (no_way_out && cfg->tolerant < 3)
                        mce_panic("Fatal local machine check", &m, msg);
        } else {
                order = mce_start(&no_way_out);
         * When there's any problem use only local no_way_out state.
         */
        if (!lmce) {
 -              if (mce_end(order) < 0)
 -                      no_way_out = worst >= MCE_PANIC_SEVERITY;
 +              if (mce_end(order) < 0) {
 +                      if (!no_way_out)
 +                              no_way_out = worst >= MCE_PANIC_SEVERITY;
 +
 +                      if (no_way_out && cfg->tolerant < 3)
 +                              mce_panic("Fatal machine check on current CPU", &m, msg);
 +              }
        } else {
                /*
                 * If there was a fatal machine check we should have
                }
        }
  
 -      /*
 -       * If tolerant is at an insane level we drop requests to kill
 -       * processes and continue even when there is no way out.
 -       */
 -      if (cfg->tolerant == 3)
 -              kill_it = 0;
 -      else if (no_way_out)
 -              mce_panic("Fatal machine check on current CPU", &m, msg);
 -
 -      if (worst > 0)
 -              irq_work_queue(&mce_irq_work);
 -
 -      if (worst != MCE_AR_SEVERITY && !kill_it)
 +      if (worst != MCE_AR_SEVERITY && !kill_current_task)
                goto out;
  
        /* Fault was in user mode and we need to take some action */
                /* If this triggers there is no way to recover. Die hard. */
                BUG_ON(!on_thread_stack() || !user_mode(regs));
  
 -              queue_task_work(&m, kill_it);
 +              queue_task_work(&m, kill_current_task);
  
        } else {
                /*
                }
  
                if (m.kflags & MCE_IN_KERNEL_COPYIN)
 -                      queue_task_work(&m, kill_it);
 +                      queue_task_work(&m, kill_current_task);
        }
  out:
        mce_wrmsrl(MSR_IA32_MCG_STATUS, 0);
@@@ -1574,7 -1581,7 +1574,7 @@@ static void __mcheck_cpu_mce_banks_init
                 * __mcheck_cpu_init_clear_banks() does the final bank setup.
                 */
                b->ctl = -1ULL;
 -              b->init = 1;
 +              b->init = true;
        }
  }
  
@@@ -1755,7 -1762,7 +1755,7 @@@ static int __mcheck_cpu_apply_quirks(st
                 */
  
                if (c->x86 == 6 && c->x86_model < 0x1A && this_cpu_read(mce_num_banks) > 0)
 -                      mce_banks[0].init = 0;
 +                      mce_banks[0].init = false;
  
                /*
                 * All newer Intel systems support MCE broadcasting. Enable
@@@ -1804,9 -1811,11 +1804,9 @@@ static int __mcheck_cpu_ancient_init(st
        case X86_VENDOR_INTEL:
                intel_p5_mcheck_init(c);
                return 1;
 -              break;
        case X86_VENDOR_CENTAUR:
                winchip_mcheck_init(c);
                return 1;
 -              break;
        default:
                return 0;
        }
@@@ -1974,7 -1983,7 +1974,7 @@@ void (*machine_check_vector)(struct pt_
  
  static __always_inline void exc_machine_check_kernel(struct pt_regs *regs)
  {
-       bool irq_state;
+       irqentry_state_t irq_state;
  
        WARN_ON_ONCE(user_mode(regs));
  
            mce_check_crashing_cpu())
                return;
  
-       irq_state = idtentry_enter_nmi(regs);
+       irq_state = irqentry_nmi_enter(regs);
        /*
         * The call targets are marked noinstr, but objtool can't figure
         * that out because it's an indirect call. Annotate it.
        if (regs->flags & X86_EFLAGS_IF)
                trace_hardirqs_on_prepare();
        instrumentation_end();
-       idtentry_exit_nmi(regs, irq_state);
+       irqentry_nmi_exit(regs, irq_state);
  }
  
  static __always_inline void exc_machine_check_user(struct pt_regs *regs)
index ddfd919be46c6f31f7d40d1f7ce7f13bd95a8685,d7b51870f16bdcec840652dec3b2df65ef75e874..a5330ff498f04583e90b9c11f48afe348a2b92d3
@@@ -31,7 -31,7 +31,7 @@@ static inline void signal_compat_build_
        BUILD_BUG_ON(NSIGBUS  != 5);
        BUILD_BUG_ON(NSIGTRAP != 5);
        BUILD_BUG_ON(NSIGCHLD != 6);
-       BUILD_BUG_ON(NSIGSYS  != 1);
+       BUILD_BUG_ON(NSIGSYS  != 2);
  
        /* This is part of the ABI and can never change in size: */
        BUILD_BUG_ON(sizeof(compat_siginfo_t) != 128);
@@@ -165,9 -165,16 +165,9 @@@ void sigaction_compat_abi(struct k_siga
  {
        signal_compat_build_tests();
  
 -      /* Don't leak in-kernel non-uapi flags to user-space */
 -      if (oact)
 -              oact->sa.sa_flags &= ~(SA_IA32_ABI | SA_X32_ABI);
 -
        if (!act)
                return;
  
 -      /* Don't let flags to be set from userspace */
 -      act->sa.sa_flags &= ~(SA_IA32_ABI | SA_X32_ABI);
 -
        if (in_ia32_syscall())
                act->sa.sa_flags |= SA_IA32_ABI;
        if (in_x32_syscall())
diff --combined arch/x86/kernel/traps.c
index 7798d862983fc69f7ad3b2672ea665bc648cca05,e1b78829d90912a6040bb2d1a741b8d1187e5cc3..fb55981f2a0d0d55459944ac0025e87c0d4c05dc
@@@ -60,7 -60,6 +60,7 @@@
  #include <asm/umip.h>
  #include <asm/insn.h>
  #include <asm/insn-eval.h>
 +#include <asm/vdso.h>
  
  #ifdef CONFIG_X86_64
  #include <asm/x86_init.h>
@@@ -118,9 -117,6 +118,9 @@@ do_trap_no_signal(struct task_struct *t
                tsk->thread.error_code = error_code;
                tsk->thread.trap_nr = trapnr;
                die(str, regs, error_code);
 +      } else {
 +              if (fixup_vdso_exception(regs, trapnr, error_code, 0))
 +                      return 0;
        }
  
        /*
@@@ -409,7 -405,7 +409,7 @@@ DEFINE_IDTENTRY_DF(exc_double_fault
        }
  #endif
  
-       idtentry_enter_nmi(regs);
+       irqentry_nmi_enter(regs);
        instrumentation_begin();
        notify_die(DIE_TRAP, str, regs, error_code, X86_TRAP_DF, SIGSEGV);
  
@@@ -554,9 -550,6 +554,9 @@@ DEFINE_IDTENTRY_ERRORCODE(exc_general_p
                tsk->thread.error_code = error_code;
                tsk->thread.trap_nr = X86_TRAP_GP;
  
 +              if (fixup_vdso_exception(regs, X86_TRAP_GP, error_code, 0))
 +                      return;
 +
                show_signal(tsk, SIGSEGV, "", desc, regs, error_code);
                force_sig(SIGSEGV);
                goto exit;
@@@ -658,12 -651,13 +658,13 @@@ DEFINE_IDTENTRY_RAW(exc_int3
                instrumentation_end();
                irqentry_exit_to_user_mode(regs);
        } else {
-               bool irq_state = idtentry_enter_nmi(regs);
+               irqentry_state_t irq_state = irqentry_nmi_enter(regs);
                instrumentation_begin();
                if (!do_int3(regs))
                        die("int3", regs, 0);
                instrumentation_end();
-               idtentry_exit_nmi(regs, irq_state);
+               irqentry_nmi_exit(regs, irq_state);
        }
  }
  
@@@ -858,7 -852,7 +859,7 @@@ static __always_inline void exc_debug_k
         * includes the entry stack is excluded for everything.
         */
        unsigned long dr7 = local_db_save();
-       bool irq_state = idtentry_enter_nmi(regs);
+       irqentry_state_t irq_state = irqentry_nmi_enter(regs);
        instrumentation_begin();
  
        /*
                regs->flags &= ~X86_EFLAGS_TF;
  out:
        instrumentation_end();
-       idtentry_exit_nmi(regs, irq_state);
+       irqentry_nmi_exit(regs, irq_state);
  
        local_db_restore(dr7);
  }
@@@ -933,7 -927,7 +934,7 @@@ static __always_inline void exc_debug_u
  
        /*
         * NB: We can't easily clear DR7 here because
-        * idtentry_exit_to_usermode() can invoke ptrace, schedule, access
+        * irqentry_exit_to_usermode() can invoke ptrace, schedule, access
         * user memory, etc.  This means that a recursive #DB is possible.  If
         * this happens, that #DB will hit exc_debug_kernel() and clear DR7.
         * Since we're not on the IST stack right now, everything will be
@@@ -1055,9 -1049,6 +1056,9 @@@ static void math_error(struct pt_regs *
        if (!si_code)
                goto exit;
  
 +      if (fixup_vdso_exception(regs, trapnr, 0, 0))
 +              return;
 +
        force_sig_fault(SIGFPE, si_code,
                        (void __user *)uprobe_get_trap_addr(regs));
  exit:
diff --combined include/linux/sched.h
index 76cd21fa55016e5e8ab7a09cec3d1516a18f5998,5a24a033b3f8316f94517aba6aa9a2202ade9d67..1cac7efabc83ae74884a21f88bd325e868ceed22
@@@ -28,6 -28,7 +28,7 @@@
  #include <linux/sched/prio.h>
  #include <linux/sched/types.h>
  #include <linux/signal_types.h>
+ #include <linux/syscall_user_dispatch.h>
  #include <linux/mm_types_task.h>
  #include <linux/task_io_accounting.h>
  #include <linux/posix-timers.h>
@@@ -552,6 -553,7 +553,6 @@@ struct sched_dl_entity 
         * overruns.
         */
        unsigned int                    dl_throttled      : 1;
 -      unsigned int                    dl_boosted        : 1;
        unsigned int                    dl_yielded        : 1;
        unsigned int                    dl_non_contending : 1;
        unsigned int                    dl_overrun        : 1;
         * time.
         */
        struct hrtimer inactive_timer;
 +
 +#ifdef CONFIG_RT_MUTEXES
 +      /*
 +       * Priority Inheritance. When a DEADLINE scheduling entity is boosted
 +       * pi_se points to the donor, otherwise points to the dl_se it belongs
 +       * to (the original one/itself).
 +       */
 +      struct sched_dl_entity *pi_se;
 +#endif
  };
  
  #ifdef CONFIG_UCLAMP_TASK
@@@ -778,6 -771,7 +779,6 @@@ struct task_struct 
        unsigned                        sched_reset_on_fork:1;
        unsigned                        sched_contributes_to_load:1;
        unsigned                        sched_migrated:1;
 -      unsigned                        sched_remote_wakeup:1;
  #ifdef CONFIG_PSI
        unsigned                        sched_psi_wake_requeue:1;
  #endif
  
        /* Unserialized, strictly 'current' */
  
 +      /*
 +       * This field must not be in the scheduler word above due to wakelist
 +       * queueing no longer being serialized by p->on_cpu. However:
 +       *
 +       * p->XXX = X;                  ttwu()
 +       * schedule()                     if (p->on_rq && ..) // false
 +       *   smp_mb__after_spinlock();    if (smp_load_acquire(&p->on_cpu) && //true
 +       *   deactivate_task()                ttwu_queue_wakelist())
 +       *     p->on_rq = 0;                    p->sched_remote_wakeup = Y;
 +       *
 +       * guarantees all stores of 'current' are visible before
 +       * ->sched_remote_wakeup gets used, so it can be in this word.
 +       */
 +      unsigned                        sched_remote_wakeup:1;
 +
        /* Bit to tell LSMs we're in execve(): */
        unsigned                        in_execve:1;
        unsigned                        in_iowait:1;
        unsigned int                    sessionid;
  #endif
        struct seccomp                  seccomp;
+       struct syscall_user_dispatch    syscall_dispatch;
  
        /* Thread group tracking: */
        u64                             parent_exec_id;
diff --combined kernel/fork.c
index 6d266388d3804ce75e2983cce13f91fb20d53c5b,4a5ecb41f4400e97c721cc76f6853a1f20691684..09be1be28cdef4f5706f2948014cdac8e9b14821
@@@ -906,6 -906,7 +906,7 @@@ static struct task_struct *dup_task_str
        clear_user_return_notifier(tsk);
        clear_tsk_need_resched(tsk);
        set_task_stack_end_magic(tsk);
+       clear_syscall_work_syscall_user_dispatch(tsk);
  
  #ifdef CONFIG_STACKPROTECTOR
        tsk->stack_canary = get_random_canary();
@@@ -1625,7 -1626,7 +1626,7 @@@ static void copy_seccomp(struct task_st
         * to manually enable the seccomp thread flag here.
         */
        if (p->seccomp.mode != SECCOMP_MODE_DISABLED)
-               set_tsk_thread_flag(p, TIF_SECCOMP);
+               set_task_syscall_work(p, SECCOMP);
  #endif
  }
  
@@@ -2158,18 -2159,23 +2159,18 @@@ static __latent_entropy struct task_str
         * child regardless of CLONE_PTRACE.
         */
        user_disable_single_step(p);
-       clear_tsk_thread_flag(p, TIF_SYSCALL_TRACE);
- #ifdef TIF_SYSCALL_EMU
-       clear_tsk_thread_flag(p, TIF_SYSCALL_EMU);
+       clear_task_syscall_work(p, SYSCALL_TRACE);
+ #if defined(CONFIG_GENERIC_ENTRY) || defined(TIF_SYSCALL_EMU)
+       clear_task_syscall_work(p, SYSCALL_EMU);
  #endif
        clear_tsk_latency_tracing(p);
  
        /* ok, now we should be set up.. */
        p->pid = pid_nr(pid);
        if (clone_flags & CLONE_THREAD) {
 -              p->exit_signal = -1;
                p->group_leader = current->group_leader;
                p->tgid = current->tgid;
        } else {
 -              if (clone_flags & CLONE_PARENT)
 -                      p->exit_signal = current->group_leader->exit_signal;
 -              else
 -                      p->exit_signal = args->exit_signal;
                p->group_leader = p;
                p->tgid = p->pid;
        }
        if (clone_flags & (CLONE_PARENT|CLONE_THREAD)) {
                p->real_parent = current->real_parent;
                p->parent_exec_id = current->parent_exec_id;
 +              if (clone_flags & CLONE_THREAD)
 +                      p->exit_signal = -1;
 +              else
 +                      p->exit_signal = current->group_leader->exit_signal;
        } else {
                p->real_parent = current;
                p->parent_exec_id = current->self_exec_id;
 +              p->exit_signal = args->exit_signal;
        }
  
        klp_copy_process(p);
diff --combined kernel/ptrace.c
index 79de1294f8ebd910a5b38b2ab86d28bd49d60c4c,237bcd6d255c6cbe394b50760b90015b71b935bd..add677d79fcf6b34499ef2165b7799cc6a97869d
@@@ -117,9 -117,9 +117,9 @@@ void __ptrace_unlink(struct task_struc
        const struct cred *old_cred;
        BUG_ON(!child->ptrace);
  
-       clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
- #ifdef TIF_SYSCALL_EMU
-       clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
+       clear_task_syscall_work(child, SYSCALL_TRACE);
+ #if defined(CONFIG_GENERIC_ENTRY) || defined(TIF_SYSCALL_EMU)
+       clear_task_syscall_work(child, SYSCALL_EMU);
  #endif
  
        child->parent = child->real_parent;
@@@ -264,11 -264,17 +264,11 @@@ static int ptrace_check_attach(struct t
        return ret;
  }
  
 -static bool ptrace_has_cap(const struct cred *cred, struct user_namespace *ns,
 -                         unsigned int mode)
 +static bool ptrace_has_cap(struct user_namespace *ns, unsigned int mode)
  {
 -      int ret;
 -
        if (mode & PTRACE_MODE_NOAUDIT)
 -              ret = security_capable(cred, ns, CAP_SYS_PTRACE, CAP_OPT_NOAUDIT);
 -      else
 -              ret = security_capable(cred, ns, CAP_SYS_PTRACE, CAP_OPT_NONE);
 -
 -      return ret == 0;
 +              return ns_capable_noaudit(ns, CAP_SYS_PTRACE);
 +      return ns_capable(ns, CAP_SYS_PTRACE);
  }
  
  /* Returns 0 on success, -errno on denial. */
@@@ -320,7 -326,7 +320,7 @@@ static int __ptrace_may_access(struct t
            gid_eq(caller_gid, tcred->sgid) &&
            gid_eq(caller_gid, tcred->gid))
                goto ok;
 -      if (ptrace_has_cap(cred, tcred->user_ns, mode))
 +      if (ptrace_has_cap(tcred->user_ns, mode))
                goto ok;
        rcu_read_unlock();
        return -EPERM;
@@@ -339,7 -345,7 +339,7 @@@ ok
        mm = task->mm;
        if (mm &&
            ((get_dumpable(mm) != SUID_DUMP_USER) &&
 -           !ptrace_has_cap(cred, mm->user_ns, mode)))
 +           !ptrace_has_cap(mm->user_ns, mode)))
            return -EPERM;
  
        return security_ptrace_access_check(task, mode);
@@@ -806,15 -812,15 +806,15 @@@ static int ptrace_resume(struct task_st
                return -EIO;
  
        if (request == PTRACE_SYSCALL)
-               set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
+               set_task_syscall_work(child, SYSCALL_TRACE);
        else
-               clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
+               clear_task_syscall_work(child, SYSCALL_TRACE);
  
- #ifdef TIF_SYSCALL_EMU
+ #if defined(CONFIG_GENERIC_ENTRY) || defined(TIF_SYSCALL_EMU)
        if (request == PTRACE_SYSEMU || request == PTRACE_SYSEMU_SINGLESTEP)
-               set_tsk_thread_flag(child, TIF_SYSCALL_EMU);
+               set_task_syscall_work(child, SYSCALL_EMU);
        else
-               clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
+               clear_task_syscall_work(child, SYSCALL_EMU);
  #endif
  
        if (is_singleblock(request)) {
diff --combined kernel/sched/core.c
index e7e453492cffc0082ef11ba3e826257f6324db35,44426e5acde27af94f55dc7967efa17df8a3af95..e0948cbb1d708cd1d6385fb9d90d91790fd89ed7
@@@ -2501,12 -2501,7 +2501,12 @@@ ttwu_do_activate(struct rq *rq, struct 
  #ifdef CONFIG_SMP
        if (wake_flags & WF_MIGRATED)
                en_flags |= ENQUEUE_MIGRATED;
 +      else
  #endif
 +      if (p->in_iowait) {
 +              delayacct_blkio_end(p);
 +              atomic_dec(&task_rq(p)->nr_iowait);
 +      }
  
        activate_task(rq, p, en_flags);
        ttwu_do_wakeup(rq, p, wake_flags, rf);
@@@ -2893,6 -2888,11 +2893,6 @@@ try_to_wake_up(struct task_struct *p, u
        if (READ_ONCE(p->on_rq) && ttwu_runnable(p, wake_flags))
                goto unlock;
  
 -      if (p->in_iowait) {
 -              delayacct_blkio_end(p);
 -              atomic_dec(&task_rq(p)->nr_iowait);
 -      }
 -
  #ifdef CONFIG_SMP
        /*
         * Ensure we load p->on_cpu _after_ p->on_rq, otherwise it would be
  
        cpu = select_task_rq(p, p->wake_cpu, SD_BALANCE_WAKE, wake_flags);
        if (task_cpu(p) != cpu) {
 +              if (p->in_iowait) {
 +                      delayacct_blkio_end(p);
 +                      atomic_dec(&task_rq(p)->nr_iowait);
 +              }
 +
                wake_flags |= WF_MIGRATED;
                psi_ttwu_dequeue(p);
                set_task_cpu(p, cpu);
@@@ -4296,6 -4291,7 +4296,7 @@@ static inline void schedule_debug(struc
                preempt_count_set(PREEMPT_DISABLED);
        }
        rcu_sleep_check();
+       SCHED_WARN_ON(ct_state() == CONTEXT_USER);
  
        profile_hit(SCHED_PROFILING, __builtin_return_address(0));
  
@@@ -4635,7 -4631,7 +4636,7 @@@ void __sched schedule_idle(void
        } while (need_resched());
  }
  
- #ifdef CONFIG_CONTEXT_TRACKING
+ #if defined(CONFIG_CONTEXT_TRACKING) && !defined(CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK)
  asmlinkage __visible void __sched schedule_user(void)
  {
        /*
@@@ -4912,21 -4908,20 +4913,21 @@@ void rt_mutex_setprio(struct task_struc
                if (!dl_prio(p->normal_prio) ||
                    (pi_task && dl_prio(pi_task->prio) &&
                     dl_entity_preempt(&pi_task->dl, &p->dl))) {
 -                      p->dl.dl_boosted = 1;
 +                      p->dl.pi_se = pi_task->dl.pi_se;
                        queue_flag |= ENQUEUE_REPLENISH;
 -              } else
 -                      p->dl.dl_boosted = 0;
 +              } else {
 +                      p->dl.pi_se = &p->dl;
 +              }
                p->sched_class = &dl_sched_class;
        } else if (rt_prio(prio)) {
                if (dl_prio(oldprio))
 -                      p->dl.dl_boosted = 0;
 +                      p->dl.pi_se = &p->dl;
                if (oldprio < prio)
                        queue_flag |= ENQUEUE_HEAD;
                p->sched_class = &rt_sched_class;
        } else {
                if (dl_prio(oldprio))
 -                      p->dl.dl_boosted = 0;
 +                      p->dl.pi_se = &p->dl;
                if (rt_prio(oldprio))
                        p->rt.timeout = 0;
                p->sched_class = &fair_sched_class;
diff --combined kernel/seccomp.c
index 53a7d1512dd739879586e880bc516035d7ee720d,f67e92d11ad7c4c8060709dfb1c3ffa38951a7c6..15f47fc11d13f62603563c30749b11b752fce205
@@@ -38,7 -38,7 +38,7 @@@
  #include <linux/filter.h>
  #include <linux/pid.h>
  #include <linux/ptrace.h>
 -#include <linux/security.h>
 +#include <linux/capability.h>
  #include <linux/tracehook.h>
  #include <linux/uaccess.h>
  #include <linux/anon_inodes.h>
@@@ -356,14 -356,14 +356,14 @@@ static inline void seccomp_assign_mode(
  
        task->seccomp.mode = seccomp_mode;
        /*
-        * Make sure TIF_SECCOMP cannot be set before the mode (and
+        * Make sure SYSCALL_WORK_SECCOMP cannot be set before the mode (and
         * filter) is set.
         */
        smp_mb__before_atomic();
        /* Assume default seccomp processes want spec flaw mitigation. */
        if ((flags & SECCOMP_FILTER_FLAG_SPEC_ALLOW) == 0)
                arch_seccomp_spec_mitigate(task);
-       set_tsk_thread_flag(task, TIF_SECCOMP);
+       set_task_syscall_work(task, SECCOMP);
  }
  
  #ifdef CONFIG_SECCOMP_FILTER
@@@ -558,7 -558,8 +558,7 @@@ static struct seccomp_filter *seccomp_p
         * behavior of privileged children.
         */
        if (!task_no_new_privs(current) &&
 -          security_capable(current_cred(), current_user_ns(),
 -                                   CAP_SYS_ADMIN, CAP_OPT_NOAUDIT) != 0)
 +                      !ns_capable_noaudit(current_user_ns(), CAP_SYS_ADMIN))
                return ERR_PTR(-EACCES);
  
        /* Allocate a new seccomp_filter */
@@@ -928,7 -929,7 +928,7 @@@ static int __seccomp_filter(int this_sy
  
        /*
         * Make sure that any changes to mode from another thread have
-        * been seen after TIF_SECCOMP was seen.
+        * been seen after SYSCALL_WORK_SECCOMP was seen.
         */
        rmb();
  
diff --combined kernel/signal.c
index 26018c59821dfb7ff35714747dd22ef286289c2c,f67ea9a08ac0d3e982b4d1b44a24837b746fbe3b..c37170655171f2bf4605cbee785c730a33b4daa0
@@@ -391,17 -391,16 +391,17 @@@ static bool task_participate_group_stop
  
  void task_join_group_stop(struct task_struct *task)
  {
 +      unsigned long mask = current->jobctl & JOBCTL_STOP_SIGMASK;
 +      struct signal_struct *sig = current->signal;
 +
 +      if (sig->group_stop_count) {
 +              sig->group_stop_count++;
 +              mask |= JOBCTL_STOP_CONSUME;
 +      } else if (!(sig->flags & SIGNAL_STOP_STOPPED))
 +              return;
 +
        /* Have the new thread join an on-going signal group stop */
 -      unsigned long jobctl = current->jobctl;
 -      if (jobctl & JOBCTL_STOP_PENDING) {
 -              struct signal_struct *sig = current->signal;
 -              unsigned long signr = jobctl & JOBCTL_STOP_SIGMASK;
 -              unsigned long gstop = JOBCTL_STOP_PENDING | JOBCTL_STOP_CONSUME;
 -              if (task_set_jobctl_pending(task, signr | gstop)) {
 -                      sig->group_stop_count++;
 -              }
 -      }
 +      task_set_jobctl_pending(task, mask | JOBCTL_STOP_PENDING);
  }
  
  /*
@@@ -984,7 -983,7 +984,7 @@@ static inline bool wants_signal(int sig
        if (task_is_stopped_or_traced(p))
                return false;
  
-       return task_curr(p) || !signal_pending(p);
+       return task_curr(p) || !task_sigpending(p);
  }
  
  static void complete_signal(int sig, struct task_struct *p, enum pid_type type)
@@@ -2524,32 -2523,26 +2524,46 @@@ static int ptrace_signal(int signr, ker
        return signr;
  }
  
 +static void hide_si_addr_tag_bits(struct ksignal *ksig)
 +{
 +      switch (siginfo_layout(ksig->sig, ksig->info.si_code)) {
 +      case SIL_FAULT:
 +      case SIL_FAULT_MCEERR:
 +      case SIL_FAULT_BNDERR:
 +      case SIL_FAULT_PKUERR:
 +              ksig->info.si_addr = arch_untagged_si_addr(
 +                      ksig->info.si_addr, ksig->sig, ksig->info.si_code);
 +              break;
 +      case SIL_KILL:
 +      case SIL_TIMER:
 +      case SIL_POLL:
 +      case SIL_CHLD:
 +      case SIL_RT:
 +      case SIL_SYS:
 +              break;
 +      }
 +}
 +
  bool get_signal(struct ksignal *ksig)
  {
        struct sighand_struct *sighand = current->sighand;
        struct signal_struct *signal = current->signal;
        int signr;
  
+       /*
+        * For non-generic architectures, check for TIF_NOTIFY_SIGNAL so
+        * that the arch handlers don't all have to do it. If we get here
+        * without TIF_SIGPENDING, just exit after running signal work.
+        */
+ #ifdef TIF_NOTIFY_SIGNAL
+       if (!IS_ENABLED(CONFIG_GENERIC_ENTRY)) {
+               if (test_thread_flag(TIF_NOTIFY_SIGNAL))
+                       tracehook_notify_signal();
+               if (!task_sigpending(current))
+                       return false;
+       }
+ #endif
        if (unlikely(uprobe_deny_signal()))
                return false;
  
@@@ -2781,10 -2774,6 +2795,10 @@@ relock
        spin_unlock_irq(&sighand->siglock);
  
        ksig->sig = signr;
 +
 +      if (!(ksig->ka.sa.sa_flags & SA_EXPOSE_TAGBITS))
 +              hide_si_addr_tag_bits(ksig);
 +
        return ksig->sig > 0;
  }
  
@@@ -2847,7 -2836,7 +2861,7 @@@ static void retarget_shared_pending(str
                /* Remove the signals this thread can handle. */
                sigandsets(&retarget, &retarget, &t->blocked);
  
-               if (!signal_pending(t))
+               if (!task_sigpending(t))
                        signal_wake_up(t, 0);
  
                if (sigisemptyset(&retarget))
@@@ -2881,7 -2870,7 +2895,7 @@@ void exit_signals(struct task_struct *t
  
        cgroup_threadgroup_change_end(tsk);
  
-       if (!signal_pending(tsk))
+       if (!task_sigpending(tsk))
                goto out;
  
        unblocked = tsk->blocked;
@@@ -2925,7 -2914,7 +2939,7 @@@ long do_no_restart_syscall(struct resta
  
  static void __set_task_blocked(struct task_struct *tsk, const sigset_t *newset)
  {
-       if (signal_pending(tsk) && !thread_group_empty(tsk)) {
+       if (task_sigpending(tsk) && !thread_group_empty(tsk)) {
                sigset_t newblocked;
                /* A set of now blocked but previously unblocked signals. */
                sigandnsets(&newblocked, newset, &current->blocked);
@@@ -4009,22 -3998,6 +4023,22 @@@ int do_sigaction(int sig, struct k_siga
        if (oact)
                *oact = *k;
  
 +      /*
 +       * Make sure that we never accidentally claim to support SA_UNSUPPORTED,
 +       * e.g. by having an architecture use the bit in their uapi.
 +       */
 +      BUILD_BUG_ON(UAPI_SA_FLAGS & SA_UNSUPPORTED);
 +
 +      /*
 +       * Clear unknown flag bits in order to allow userspace to detect missing
 +       * support for flag bits and to allow the kernel to use non-uapi bits
 +       * internally.
 +       */
 +      if (act)
 +              act->sa.sa_flags &= UAPI_SA_FLAGS;
 +      if (oact)
 +              oact->sa.sa_flags &= UAPI_SA_FLAGS;
 +
        sigaction_compat_abi(act, oact);
  
        if (act) {
index 2e20e30a6faaef0cc921af0e1b7a772e2973397f,96d5682fb9d8d2988afa61830b1cdcb7a90e6126..e93f10386e7684333965c01d82bf6bc3423d72b7
@@@ -50,13 -50,13 +50,14 @@@ TARGETS += openat
  TARGETS += rseq
  TARGETS += rtc
  TARGETS += seccomp
 +TARGETS += sgx
  TARGETS += sigaltstack
  TARGETS += size
  TARGETS += sparc64
  TARGETS += splice
  TARGETS += static_keys
  TARGETS += sync
+ TARGETS += syscall_user_dispatch
  TARGETS += sysctl
  TARGETS += tc-testing
  TARGETS += timens
This page took 0.195795 seconds and 4 git commands to generate.