]> Git Repo - linux.git/commitdiff
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <[email protected]>
Sat, 20 Jul 2019 18:24:49 +0000 (11:24 -0700)
committerLinus Torvalds <[email protected]>
Sat, 20 Jul 2019 18:24:49 +0000 (11:24 -0700)
Pull x86 fixes from Thomas Gleixner:
 "A set of x86 specific fixes and updates:

   - The CR2 corruption fixes which store CR2 early in the entry code
     and hand the stored address to the fault handlers.

   - Revert a forgotten leftover of the dropped FSGSBASE series.

   - Plug a memory leak in the boot code.

   - Make the Hyper-V assist functionality robust by zeroing the shadow
     page.

   - Remove a useless check for dead processes with LDT

   - Update paravirt and VMware maintainers entries.

   - A few cleanup patches addressing various compiler warnings"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/entry/64: Prevent clobbering of saved CR2 value
  x86/hyper-v: Zero out the VP ASSIST PAGE on allocation
  x86, boot: Remove multiple copy of static function sanitize_boot_params()
  x86/boot/compressed/64: Remove unused variable
  x86/boot/efi: Remove unused variables
  x86/mm, tracing: Fix CR2 corruption
  x86/entry/64: Update comments and sanity tests for create_gap
  x86/entry/64: Simplify idtentry a little
  x86/entry/32: Simplify common_exception
  x86/paravirt: Make read_cr2() CALLEE_SAVE
  MAINTAINERS: Update PARAVIRT_OPS_INTERFACE and VMWARE_HYPERVISOR_INTERFACE
  x86/process: Delete useless check for dead process with LDT
  x86: math-emu: Hide clang warnings for 16-bit overflow
  x86/e820: Use proper booleans instead of 0/1
  x86/apic: Silence -Wtype-limits compiler warnings
  x86/mm: Free sme_early_buffer after init
  x86/boot: Fix memory leak in default_get_smp_config()
  Revert "x86/ptrace: Prevent ptrace from clearing the FS/GS selector" and fix the test

1  2 
MAINTAINERS
arch/x86/entry/entry_64.S
arch/x86/include/asm/paravirt.h
arch/x86/include/asm/traps.h
arch/x86/kernel/head_64.S
arch/x86/kernel/kvm.c
arch/x86/mm/fault.c
arch/x86/xen/enlighten_pv.c

diff --combined MAINTAINERS
index 8f663ceabd6d5939c42ab0eb37e3ea99077cdb3a,80fa7a4a0b564c332cc629000caf8b59c04e6eca..783569e3c4b48752c3555e9bee6fbc87adad5117
@@@ -1155,7 -1155,7 +1155,7 @@@ APPLIED MICRO (APM) X-GENE SOC PM
  M:    Khuong Dinh <[email protected]>
  S:    Supported
  F:    drivers/perf/xgene_pmu.c
 -F:    Documentation/perf/xgene-pmu.txt
 +F:    Documentation/admin-guide/perf/xgene-pmu.rst
  F:    Documentation/devicetree/bindings/perf/apm-xgene-pmu.txt
  
  APTINA CAMERA SENSOR PLL
@@@ -1236,7 -1236,7 +1236,7 @@@ M:      James (Qian) Wang <james.qian.wang@a
  M:    Liviu Dudau <[email protected]>
  L:    Mali DP Maintainers <[email protected]>
  S:    Supported
 -T:    git git://linux-arm.org/linux-ld.git for-upstream/mali-dp
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/arm/display/include/
  F:    drivers/gpu/drm/arm/display/komeda/
  F:    Documentation/devicetree/bindings/display/arm,komeda.txt
@@@ -1247,7 -1247,7 +1247,7 @@@ M:      Liviu Dudau <[email protected]
  M:    Brian Starkey <[email protected]>
  L:    Mali DP Maintainers <[email protected]>
  S:    Supported
 -T:    git git://linux-arm.org/linux-ld.git for-upstream/mali-dp
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/arm/
  F:    Documentation/devicetree/bindings/display/arm,malidp.txt
  F:    Documentation/gpu/afbc.rst
@@@ -1264,7 -1264,7 +1264,7 @@@ F:      include/uapi/drm/panfrost_drm.
  ARM MFM AND FLOPPY DRIVERS
  M:    Ian Molton <[email protected]>
  S:    Maintained
 -F:    arch/arm/lib/floppydma.S
 +F:    arch/arm/mach-rpc/floppydma.S
  F:    arch/arm/include/asm/floppy.h
  
  ARM PMU PROFILING AND DEBUGGING
@@@ -1863,7 -1863,6 +1863,7 @@@ F:      arch/arm/mach-orion5x
  F:    arch/arm/plat-orion/
  F:    arch/arm/boot/dts/dove*
  F:    arch/arm/boot/dts/orion5x*
 +T:    git git://git.infradead.org/linux-mvebu.git
  
  ARM/Marvell Kirkwood and Armada 370, 375, 38x, 39x, XP, 3700, 7K/8K SOC support
  M:    Jason Cooper <[email protected]>
@@@ -1884,7 -1883,6 +1884,7 @@@ F:      drivers/irqchip/irq-armada-370-xp.
  F:    drivers/irqchip/irq-mvebu-*
  F:    drivers/pinctrl/mvebu/
  F:    drivers/rtc/rtc-armada38x.c
 +T:    git git://git.infradead.org/linux-mvebu.git
  
  ARM/Mediatek RTC DRIVER
  M:    Eddie Huang <[email protected]>
@@@ -2091,6 -2089,7 +2091,6 @@@ S:      Maintaine
  
  ARM/QUALCOMM SUPPORT
  M:    Andy Gross <[email protected]>
 -M:    David Brown <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/soc/qcom/
@@@ -2112,7 -2111,7 +2112,7 @@@ F:      drivers/i2c/busses/i2c-qup.
  F:    drivers/i2c/busses/i2c-qcom-geni.c
  F:    drivers/mfd/ssbi.c
  F:    drivers/mmc/host/mmci_qcom*
 -F:    drivers/mmc/host/sdhci_msm.c
 +F:    drivers/mmc/host/sdhci-msm.c
  F:    drivers/pci/controller/dwc/pcie-qcom.c
  F:    drivers/phy/qualcomm/
  F:    drivers/power/*/msm*
@@@ -2219,7 -2218,7 +2219,7 @@@ F:      drivers/*/*s3c64xx
  F:    drivers/*/*s5pv210*
  F:    drivers/memory/samsung/*
  F:    drivers/soc/samsung/*
 -F:    Documentation/arm/Samsung/
 +F:    Documentation/arm/samsung/
  F:    Documentation/devicetree/bindings/arm/samsung/
  F:    Documentation/devicetree/bindings/sram/samsung-sram.txt
  F:    Documentation/devicetree/bindings/power/pd-samsung.txt
@@@ -2690,7 -2689,7 +2690,7 @@@ ATA OVER ETHERNET (AOE) DRIVE
  M:    "Justin Sanders" <[email protected]>
  W:    http://www.openaoe.org/
  S:    Supported
 -F:    Documentation/aoe/
 +F:    Documentation/admin-guide/aoe/
  F:    drivers/block/aoe/
  
  ATHEROS 71XX/9XXX GPIO DRIVER
@@@ -2969,7 -2968,7 +2969,7 @@@ M:      Jens Axboe <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    block/bfq-*
 -F:    Documentation/block/bfq-iosched.txt
 +F:    Documentation/block/bfq-iosched.rst
  
  BFS FILE SYSTEM
  M:    "Tigran A. Aivazian" <[email protected]>
@@@ -3109,9 -3108,9 +3109,9 @@@ S:      Maintaine
  F:    arch/riscv/net/
  
  BPF JIT for S390
 +M:    Ilya Leoshkevich <[email protected]>
  M:    Heiko Carstens <[email protected]>
  M:    Vasily Gorbik <[email protected]>
 -M:    Christian Borntraeger <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -3766,7 -3765,7 +3766,7 @@@ F:      arch/powerpc/platforms/cell
  
  CEPH COMMON CODE (LIBCEPH)
  M:    Ilya Dryomov <[email protected]>
 -M:    "Yan, Zheng" <[email protected]>
 +M:    Jeff Layton <[email protected]>
  M:    Sage Weil <[email protected]>
  L:    [email protected]
  W:    http://ceph.com/
@@@ -3778,7 -3777,7 +3778,7 @@@ F:      include/linux/ceph
  F:    include/linux/crush/
  
  CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH)
 -M:    "Yan, Zheng" <[email protected]>
 +M:    Jeff Layton <[email protected]>
  M:    Sage Weil <[email protected]>
  M:    Ilya Dryomov <[email protected]>
  L:    [email protected]
@@@ -4159,7 -4158,7 +4159,7 @@@ L:      [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
  S:    Maintained
  F:    Documentation/admin-guide/cgroup-v2.rst
 -F:    Documentation/cgroup-v1/
 +F:    Documentation/admin-guide/cgroup-v1/
  F:    include/linux/cgroup*
  F:    kernel/cgroup/
  
@@@ -4170,7 -4169,7 +4170,7 @@@ W:      http://www.bullopensource.org/cpuset
  W:    http://oss.sgi.com/projects/cpusets/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
  S:    Maintained
 -F:    Documentation/cgroup-v1/cpusets.rst
 +F:    Documentation/admin-guide/cgroup-v1/cpusets.rst
  F:    include/linux/cpuset.h
  F:    kernel/cgroup/cpuset.c
  
@@@ -4184,19 -4183,6 +4184,19 @@@ S:    Maintaine
  F:    mm/memcontrol.c
  F:    mm/swap_cgroup.c
  
 +CONTROL GROUP - BLOCK IO CONTROLLER (BLKIO)
 +M:    Tejun Heo <[email protected]>
 +M:    Jens Axboe <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +T:    git git://git.kernel.dk/linux-block
 +F:    Documentation/cgroup-v1/blkio-controller.rst
 +F:    block/blk-cgroup.c
 +F:    include/linux/blk-cgroup.h
 +F:    block/blk-throttle.c
 +F:    block/blk-iolatency.c
 +F:    block/bfq-cgroup.c
 +
  CORETEMP HARDWARE MONITORING DRIVER
  M:    Fenghua Yu <[email protected]>
  L:    [email protected]
@@@ -4656,7 -4642,7 +4656,7 @@@ DELL SYSTEMS MANAGEMENT BASE DRIVER (dc
  M:    Stuart Hayes <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/dcdbas.txt
 +F:    Documentation/driver-api/dcdbas.rst
  F:    drivers/platform/x86/dcdbas.*
  
  DELL WMI NOTIFICATIONS DRIVER
  S:    Supported
  F:    drivers/mtd/nand/raw/denali*
  
 +DESIGNWARE EDMA CORE IP DRIVER
 +M:    Gustavo Pimentel <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/dma/dw-edma/
 +F:    include/linux/dma/edma.h
 +
  DESIGNWARE USB2 DRD IP DRIVER
  M:    Minas Harutyunyan <[email protected]>
  L:    [email protected]
@@@ -4756,7 -4735,7 +4756,7 @@@ Q:      http://patchwork.kernel.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git
  T:    quilt http://people.redhat.com/agk/patches/linux/editing/
  S:    Maintained
 -F:    Documentation/device-mapper/
 +F:    Documentation/admin-guide/device-mapper/
  F:    drivers/md/Makefile
  F:    drivers/md/Kconfig
  F:    drivers/md/dm*
@@@ -5027,7 -5006,7 +5027,7 @@@ T:      git git://git.linbit.com/drbd-8.4.gi
  S:    Supported
  F:    drivers/block/drbd/
  F:    lib/lru_cache.c
 -F:    Documentation/blockdev/drbd/
 +F:    Documentation/admin-guide/blockdev/
  
  DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS
  M:    Greg Kroah-Hartman <[email protected]>
@@@ -5220,13 -5199,6 +5220,13 @@@ S:    Maintaine
  F:    drivers/gpu/drm/tinydrm/st7735r.c
  F:    Documentation/devicetree/bindings/display/sitronix,st7735r.txt
  
 +DRM DRIVER FOR ST-ERICSSON MCDE
 +M:    Linus Walleij <[email protected]>
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +S:    Maintained
 +F:    drivers/gpu/drm/mcde/
 +F:    Documentation/devicetree/bindings/display/ste,mcde.txt
 +
  DRM DRIVER FOR TDFX VIDEO CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/tdfx/
@@@ -5512,7 -5484,6 +5512,7 @@@ T:      git git://anongit.freedesktop.org/dr
  
  DRM PANEL DRIVERS
  M:    Thierry Reding <[email protected]>
 +R:    Sam Ravnborg <[email protected]>
  L:    [email protected]
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
@@@ -5541,6 -5512,7 +5541,6 @@@ F:      Documentation/gpu/xen-front.rs
  DRM TTM SUBSYSTEM
  M:    Christian Koenig <[email protected]>
  M:    Huang Rui <[email protected]>
 -M:    Junwei Zhang <[email protected]>
  T:    git git://people.freedesktop.org/~agd5f/linux
  S:    Maintained
  L:    [email protected]
@@@ -6108,7 -6080,7 +6108,7 @@@ M:      Ard Biesheuvel <ard.biesheuvel@linar
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git
  S:    Maintained
 -F:    Documentation/efi-stub.txt
 +F:    Documentation/admin-guide/efi-stub.rst
  F:    arch/*/kernel/efi.c
  F:    arch/x86/boot/compressed/eboot.[ch]
  F:    arch/*/include/asm/efi.h
@@@ -6322,8 -6294,9 +6322,8 @@@ F:      Documentation/devicetree/bindings/co
  F:    drivers/counter/ftm-quaddec.c
  
  FLOPPY DRIVER
 -M:    Jiri Kosina <[email protected]>
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/floppy.git
 -S:    Odd fixes
 +S:    Orphan
 +L:    [email protected]
  F:    drivers/block/floppy.c
  
  FMC SUBSYSTEM
@@@ -6526,7 -6499,6 +6526,7 @@@ M:      Li Yang <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/misc/fsl,dpaa2-console.txt
  F:    Documentation/devicetree/bindings/soc/fsl/
  F:    drivers/soc/fsl/
  F:    include/linux/fsl/
@@@ -6569,7 -6541,7 +6569,7 @@@ M:      "Rafael J. Wysocki" <[email protected]
  M:    Pavel Machek <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/power/freezing-of-tasks.txt
 +F:    Documentation/power/freezing-of-tasks.rst
  F:    include/linux/freezer.h
  F:    kernel/freezer.c
  
@@@ -6683,7 -6655,7 +6683,7 @@@ S:      Maintaine
  F:    scripts/gcc-plugins/
  F:    scripts/gcc-plugin.sh
  F:    scripts/Makefile.gcc-plugins
 -F:    Documentation/gcc-plugins.txt
 +F:    Documentation/core-api/gcc-plugins.rst
  
  GASKET DRIVER FRAMEWORK
  M:    Rob Springer <[email protected]>
@@@ -6895,7 -6867,7 +6895,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    Documentation/devicetree/bindings/gpio/
  F:    Documentation/driver-api/gpio/
 -F:    Documentation/gpio/
 +F:    Documentation/admin-guide/gpio/
  F:    Documentation/ABI/testing/gpio-cdev
  F:    Documentation/ABI/obsolete/sysfs-gpio
  F:    drivers/gpio/
@@@ -7116,7 -7088,7 +7116,7 @@@ M:      Herbert Xu <[email protected]
  L:    [email protected]
  S:    Odd fixes
  F:    Documentation/devicetree/bindings/rng/
 -F:    Documentation/hw_random.txt
 +F:    Documentation/admin-guide/hw_random.rst
  F:    drivers/char/hw_random/
  F:    include/linux/hw_random.h
  
@@@ -7290,7 -7262,7 +7290,7 @@@ M:      Shaokun Zhang <zhangshaokun@hisilico
  W:    http://www.hisilicon.com
  S:    Supported
  F:    drivers/perf/hisilicon
 -F:    Documentation/perf/hisi-pmu.txt
 +F:    Documentation/admin-guide/perf/hisi-pmu.rst
  
  HISILICON ROCE DRIVER
  M:    Lijun Ou <[email protected]>
  S:    Maintained
  F:    drivers/mtd/nand/raw/ingenic/
  
 +INGENIC JZ47xx SoCs
 +M:    Paul Cercueil <[email protected]>
 +S:    Maintained
 +F:    arch/mips/boot/dts/ingenic/
 +F:    arch/mips/include/asm/mach-jz4740/
 +F:    arch/mips/jz4740/
 +F:    drivers/clk/ingenic/
 +F:    drivers/dma/dma-jz4780.c
 +F:    drivers/gpu/drm/ingenic/
 +F:    drivers/i2c/busses/i2c-jz4780.c
 +F:    drivers/iio/adc/ingenic-adc.c
 +F:    drivers/irqchip/irq-ingenic.c
 +F:    drivers/memory/jz4780-nemc.c
 +F:    drivers/mmc/host/jz4740_mmc.c
 +F:    drivers/mtd/nand/raw/ingenic/
 +F:    drivers/pinctrl/pinctrl-ingenic.c
 +F:    drivers/power/supply/ingenic-battery.c
 +F:    drivers/pwm/pwm-jz4740.c
 +F:    drivers/rtc/rtc-jz4740.c
 +F:    drivers/tty/serial/8250/8250_ingenic.c
 +F:    drivers/usb/musb/jz4740.c
 +F:    drivers/watchdog/jz4740_wdt.c
 +F:    include/dt-bindings/iio/adc/ingenic,adc.h
 +F:    include/linux/mfd/ingenic-tcu.h
 +F:    sound/soc/jz4740/
 +F:    sound/soc/codecs/jz47*
 +
  INOTIFY
  M:    Jan Kara <[email protected]>
  R:    Amir Goldstein <[email protected]>
@@@ -8270,7 -8215,7 +8270,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    drivers/gpio/gpio-*cove.c
  F:    drivers/gpio/gpio-msic.c
  
 -INTEL MULTIFUNCTION PMIC DEVICE DRIVERS
 +INTEL PMIC MULTIFUNCTION DEVICE DRIVERS
  R:    Andy Shevchenko <[email protected]>
  S:    Maintained
  F:    drivers/mfd/intel_msic.c
@@@ -8367,7 -8312,7 +8367,7 @@@ L:      [email protected]
  W:    http://tboot.sourceforge.net
  T:    hg http://tboot.hg.sourceforge.net:8000/hgroot/tboot/tboot
  S:    Supported
 -F:    Documentation/intel_txt.txt
 +F:    Documentation/x86/intel_txt.rst
  F:    include/linux/tboot.h
  F:    arch/x86/kernel/tboot.c
  
@@@ -8381,7 -8326,7 +8381,7 @@@ INTERCONNECT AP
  M:    Georgi Djakov <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/interconnect/
 +F:    Documentation/driver-api/interconnect.rst
  F:    Documentation/devicetree/bindings/interconnect/
  F:    drivers/interconnect/
  F:    include/dt-bindings/interconnect/
@@@ -8417,7 -8362,6 +8417,7 @@@ L:      [email protected]
  T:    git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
  S:    Supported
  F:    fs/iomap.c
 +F:    fs/iomap/
  F:    include/linux/iomap.h
  
  IOMMU DRIVERS
@@@ -8518,7 -8462,7 +8518,7 @@@ F:      drivers/irqchip
  ISA
  M:    William Breathitt Gray <[email protected]>
  S:    Maintained
 -F:    Documentation/isa.txt
 +F:    Documentation/driver-api/isa.rst
  F:    drivers/base/isa.c
  F:    include/linux/isa.h
  
@@@ -8533,7 -8477,7 +8533,7 @@@ F:      drivers/media/radio/radio-isa
  ISAPNP
  M:    Jaroslav Kysela <[email protected]>
  S:    Maintained
 -F:    Documentation/isapnp.txt
 +F:    Documentation/driver-api/isapnp.rst
  F:    drivers/pnp/isapnp/
  F:    include/linux/isapnp.h
  
@@@ -8731,7 -8675,7 +8731,7 @@@ R:      Vivek Goyal <[email protected]
  L:    [email protected]
  W:    http://lse.sourceforge.net/kdump/
  S:    Maintained
 -F:    Documentation/kdump/
 +F:    Documentation/admin-guide/kdump/
  
  KEENE FM RADIO TRANSMITTER DRIVER
  M:    Hans Verkuil <[email protected]>
@@@ -8878,8 -8822,6 +8878,8 @@@ F:      arch/s390/include/asm/gmap.
  F:    arch/s390/include/asm/kvm*
  F:    arch/s390/kvm/
  F:    arch/s390/mm/gmap.c
 +F:    tools/testing/selftests/kvm/s390x/
 +F:    tools/testing/selftests/kvm/*/s390x/
  
  KERNEL VIRTUAL MACHINE FOR X86 (KVM/x86)
  M:    Paolo Bonzini <[email protected]>
@@@ -9087,7 -9029,7 +9087,7 @@@ M:      Matan Ziv-Av <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-platform-lg-laptop
 -F:    Documentation/laptops/lg-laptop.rst
 +F:    Documentation/admin-guide/laptops/lg-laptop.rst
  F:    drivers/platform/x86/lg-laptop.c
  
  LG2160 MEDIA DRIVER
@@@ -9456,7 -9398,7 +9456,7 @@@ M:      "Richard Russon (FlatCap)" <ldm@flat
  L:    [email protected]
  W:    http://www.linux-ntfs.org/content/view/19/37/
  S:    Maintained
 -F:    Documentation/ldm.txt
 +F:    Documentation/admin-guide/ldm.rst
  F:    block/partitions/ldm.*
  
  LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
  S:    Maintained
  F:    drivers/net/wireless/mediatek/mt7601u/
  
 +MEDIATEK MT7621/28/88 I2C DRIVER
 +M:    Stefan Roese <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-mt7621.c
 +F:    Documentation/devicetree/bindings/i2c/i2c-mt7621.txt
 +
  MEDIATEK NAND CONTROLLER DRIVER
  M:    Xiaolei Li <[email protected]>
  L:    [email protected]
@@@ -10418,7 -10353,7 +10418,7 @@@ M:   Johannes Thumshirn <morbidrsa@gmail.
  S:    Maintained
  F:    drivers/mcb/
  F:    include/linux/mcb.h
 -F:    Documentation/men-chameleon-bus.txt
 +F:    Documentation/driver-api/men-chameleon-bus.rst
  
  MEN F21BMC (Board Management Controller)
  M:    Andreas Werner <[email protected]>
@@@ -10832,7 -10767,7 +10832,7 @@@ F:   include/uapi/linux/meye.
  MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
  M:    Jiri Slaby <[email protected]>
  S:    Maintained
 -F:    Documentation/serial/moxa-smartio.rst
 +F:    Documentation/driver-api/serial/moxa-smartio.rst
  F:    drivers/tty/mxser.*
  
  MR800 AVERMEDIA USB FM RADIO DRIVER
@@@ -11076,6 -11011,14 +11076,6 @@@ F:  driver/net/net_failover.
  F:    include/net/net_failover.h
  F:    Documentation/networking/net_failover.rst
  
 -NETEFFECT IWARP RNIC DRIVER (IW_NES)
 -M:    Faisal Latif <[email protected]>
 -L:    [email protected]
 -W:    http://www.intel.com/Products/Server/Adapters/Server-Cluster/Server-Cluster-overview.htm
 -S:    Supported
 -F:    drivers/infiniband/hw/nes/
 -F:    include/uapi/rdma/nes-abi.h
 -
  NETEM NETWORK EMULATOR
  M:    Stephen Hemminger <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -11133,7 -11076,7 +11133,7 @@@ M:   Josef Bacik <[email protected]
  S:    Maintained
  L:    [email protected]
  L:    [email protected]
 -F:    Documentation/blockdev/nbd.txt
 +F:    Documentation/admin-guide/blockdev/nbd.rst
  F:    drivers/block/nbd.c
  F:    include/trace/events/nbd.h
  F:    include/uapi/linux/nbd.h
@@@ -11592,7 -11535,7 +11592,7 @@@ F:   arch/powerpc/include/asm/pnv-ocxl.
  F:    drivers/misc/ocxl/
  F:    include/misc/ocxl*
  F:    include/uapi/misc/ocxl.h
 -F:    Documentation/accelerators/ocxl.rst
 +F:    Documentation/userspace-api/accelerators/ocxl.rst
  
  OMAP AUDIO SUPPORT
  M:    Peter Ujfalusi <[email protected]>
  L:    [email protected]
  S:    Orphan
  F:    drivers/video/fbdev/omap2/
 -F:    Documentation/arm/OMAP/DSS
 +F:    Documentation/arm/omap/dss.rst
  
  OMAP FRAMEBUFFER SUPPORT
  L:    [email protected]
@@@ -11909,13 -11852,11 +11909,13 @@@ F:        include/linux/mtd/onenand*.
  
  OP-TEE DRIVER
  M:    Jens Wiklander <[email protected]>
 +L:    [email protected]
  S:    Maintained
  F:    drivers/tee/optee/
  
  OP-TEE RANDOM NUMBER GENERATOR (RNG) DRIVER
  M:    Sumit Garg <[email protected]>
 +L:    [email protected]
  S:    Maintained
  F:    drivers/char/hw_random/optee-rng.c
  
@@@ -12002,7 -11943,7 +12002,7 @@@ S:   Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git
  F:    drivers/opp/
  F:    include/linux/pm_opp.h
 -F:    Documentation/power/opp.txt
 +F:    Documentation/power/opp.rst
  F:    Documentation/devicetree/bindings/opp/
  
  OPL4 DRIVER
@@@ -12117,7 -12058,7 +12117,7 @@@ PARALLEL LCD/KEYPAD PANEL DRIVE
  M:    Willy Tarreau <[email protected]>
  M:    Ksenija Stanojevic <[email protected]>
  S:    Odd Fixes
 -F:    Documentation/auxdisplay/lcd-panel-cgram.txt
 +F:    Documentation/admin-guide/lcd-panel-cgram.rst
  F:    drivers/auxdisplay/panel.c
  
  PARALLEL PORT SUBSYSTEM
@@@ -12129,11 -12070,12 +12129,12 @@@ F:        drivers/parport
  F:    include/linux/parport*.h
  F:    drivers/char/ppdev.c
  F:    include/uapi/linux/ppdev.h
 -F:    Documentation/parport*.txt
 +F:    Documentation/driver-api/parport*.rst
  
  PARAVIRT_OPS INTERFACE
  M:    Juergen Gross <[email protected]>
- M:    Alok Kataria <[email protected]>
+ M:    Thomas Hellstrom <[email protected]>
+ M:    "VMware, Inc." <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/virtual/paravirt_ops.txt
@@@ -12145,7 -12087,7 +12146,7 @@@ PARIDE DRIVERS FOR PARALLEL PORT IDE DE
  M:    Tim Waugh <[email protected]>
  L:    [email protected] (subscribers-only)
  S:    Maintained
 -F:    Documentation/blockdev/paride.txt
 +F:    Documentation/admin-guide/blockdev/paride.rst
  F:    drivers/block/paride/
  
  PARISC ARCHITECTURE
@@@ -12304,7 -12246,7 +12305,7 @@@ M:   Kurt Schwemmer <kurt.schwemmer@micro
  M:    Logan Gunthorpe <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/switchtec.txt
 +F:    Documentation/driver-api/switchtec.rst
  F:    Documentation/ABI/testing/sysfs-class-switchtec
  F:    drivers/pci/switch/switchtec*
  F:    include/uapi/linux/switchtec_ioctl.h
@@@ -12389,7 -12331,7 +12390,7 @@@ M:   Sam Bobroff <[email protected]
  M:    Oliver O'Halloran <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/PCI/pci-error-recovery.txt
 +F:    Documentation/PCI/pci-error-recovery.rst
  F:    drivers/pci/pcie/aer.c
  F:    drivers/pci/pcie/dpc.c
  F:    drivers/pci/pcie/err.c
@@@ -12402,7 -12344,7 +12403,7 @@@ PCI ERROR RECOVER
  M:    Linas Vepstas <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/PCI/pci-error-recovery.txt
 +F:    Documentation/PCI/pci-error-recovery.rst
  
  PCI MSI DRIVER FOR ALTERA MSI IP
  M:    Ley Foon Tan <[email protected]>
@@@ -12651,17 -12593,6 +12652,17 @@@ F: arch/arm/boot/dts/picoxcell
  F:    arch/arm/mach-picoxcell/
  F:    drivers/crypto/picoxcell*
  
 +PIDFD API
 +M:    Christian Brauner <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git
 +F:    samples/pidfd/
 +F:    tools/testing/selftests/pidfd/
 +K:    (?i)pidfd
 +K:    (?i)clone3
 +K:    \b(clone_args|kernel_clone_args)\b
 +
  PIN CONTROL SUBSYSTEM
  M:    Linus Walleij <[email protected]>
  L:    [email protected]
@@@ -12847,7 -12778,6 +12848,7 @@@ F:   drivers/base/power
  F:    include/linux/pm.h
  F:    include/linux/pm_*
  F:    include/linux/powercap.h
 +F:    include/linux/intel_rapl.h
  F:    drivers/powercap/
  F:    kernel/configs/nopm.config
  
@@@ -13077,7 -13007,7 +13078,7 @@@ M:   Thierry Reding <thierry.reding@gmail
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm.git
 -F:    Documentation/pwm.txt
 +F:    Documentation/driver-api/pwm.rst
  F:    Documentation/devicetree/bindings/pwm/
  F:    include/linux/pwm.h
  F:    drivers/pwm/
@@@ -13299,7 -13229,7 +13300,7 @@@ M:   Niklas Cassel <niklas.cassel@linaro.
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
 -F:    Documentation/devicetree/bindings/net/qcom,dwmac.txt
 +F:    Documentation/devicetree/bindings/net/qcom,ethqos.txt
  
  QUALCOMM GENERIC INTERFACE I2C DRIVER
  M:    Alok Chauhan <[email protected]>
@@@ -13438,7 -13368,7 +13439,7 @@@ F:   drivers/net/wireless/ralink/rt2x00
  RAMDISK RAM BLOCK DEVICE DRIVER
  M:    Jens Axboe <[email protected]>
  S:    Maintained
 -F:    Documentation/blockdev/ramdisk.txt
 +F:    Documentation/admin-guide/blockdev/ramdisk.rst
  F:    drivers/block/brd.c
  
  RANCHU VIRTUAL BOARD FOR MIPS
@@@ -13547,7 -13477,7 +13548,7 @@@ Q:   http://patchwork.ozlabs.org/project/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/rtc/
 -F:    Documentation/rtc.txt
 +F:    Documentation/admin-guide/rtc.rst
  F:    drivers/rtc/
  F:    include/linux/rtc.h
  F:    include/uapi/linux/rtc.h
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/remoteproc/
 +F:    Documentation/ABI/testing/sysfs-class-remoteproc
  F:    Documentation/remoteproc.txt
  F:    drivers/remoteproc/
  F:    include/linux/remoteproc.h
 +F:    include/linux/remoteproc/
  
  REMOTE PROCESSOR MESSAGING (RPMSG) SUBSYSTEM
  M:    Ohad Ben-Cohen <[email protected]>
@@@ -13611,11 -13539,8 +13612,11 @@@ T: git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    drivers/rpmsg/
  F:    Documentation/rpmsg.txt
 +F:    Documentation/ABI/testing/sysfs-bus-rpmsg
  F:    include/linux/rpmsg.h
  F:    include/linux/rpmsg/
 +F:    include/uapi/linux/rpmsg.h
 +F:    samples/rpmsg/
  
  RENESAS CLOCK DRIVERS
  M:    Geert Uytterhoeven <[email protected]>
@@@ -13696,7 -13621,7 +13697,7 @@@ W:   http://wireless.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
  S:    Maintained
 -F:    Documentation/rfkill.txt
 +F:    Documentation/driver-api/rfkill.rst
  F:    Documentation/ABI/stable/sysfs-class-rfkill
  F:    net/rfkill/
  F:    include/linux/rfkill.h
@@@ -13727,7 -13652,7 +13728,7 @@@ RISC-V ARCHITECTUR
  M:    Palmer Dabbelt <[email protected]>
  M:    Albert Ou <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git
  S:    Supported
  F:    arch/riscv/
  K:    riscv
@@@ -13765,7 -13690,7 +13766,7 @@@ ROCKETPORT DRIVE
  P:    Comtrol Corp.
  W:    http://www.comtrol.com
  S:    Maintained
 -F:    Documentation/serial/rocket.rst
 +F:    Documentation/driver-api/serial/rocket.rst
  F:    drivers/tty/rocket*
  
  ROCKETPORT EXPRESS/INFINITY DRIVER
@@@ -14159,7 -14084,7 +14160,7 @@@ M:   Sylwester Nawrocki <s.nawrocki@samsu
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/phy/samsung-phy.txt
 -F:    Documentation/phy/samsung-usb2.txt
 +F:    Documentation/driver-api/phy/samsung-usb2.rst
  F:    drivers/phy/samsung/phy-exynos4210-usb2.c
  F:    drivers/phy/samsung/phy-exynos4x12-usb2.c
  F:    drivers/phy/samsung/phy-exynos5250-usb2.c
@@@ -14465,7 -14390,7 +14466,7 @@@ SGI SN-IA64 (Altix) SERIAL CONSOLE DRIV
  M:    Pat Gefre <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/ia64/serial.txt
 +F:    Documentation/ia64/serial.rst
  F:    drivers/tty/serial/ioc?_serial.c
  F:    include/linux/ioc?.h
  
@@@ -14589,7 -14514,7 +14590,7 @@@ M:   Paul Walmsley <paul.walmsley@sifive.
  L:    [email protected]
  T:    git git://github.com/sifive/riscv-linux.git
  S:    Supported
 -K:    sifive
 +K:    [^@]sifive
  N:    sifive
  
  SIFIVE FU540 SYSTEM-ON-CHIP
@@@ -14824,13 -14749,6 +14825,13 @@@ M: Chris Boot <[email protected]
  S:    Maintained
  F:    drivers/leds/leds-net48xx.c
  
 +SOFT-IWARP DRIVER (siw)
 +M:    Bernard Metzler <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/infiniband/sw/siw/
 +F:    include/uapi/rdma/siw-abi.h
 +
  SOFT-ROCE DRIVER (rxe)
  M:    Moni Shoua <[email protected]>
  L:    [email protected]
@@@ -14880,7 -14798,6 +14881,7 @@@ F:   Documentation/devicetree/bindings/ne
  
  SOCIONEXT (SNI) NETSEC NETWORK DRIVER
  M:    Jassi Brar <[email protected]>
 +M:    Ilias Apalodimas <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/socionext/netsec.c
@@@ -14972,7 -14889,7 +14973,7 @@@ M:   Mattia Dongili <[email protected]
  L:    [email protected]
  W:    http://www.linux.it/~malattia/wiki/index.php/Sony_drivers
  S:    Maintained
 -F:    Documentation/laptops/sony-laptop.txt
 +F:    Documentation/admin-guide/laptops/sony-laptop.rst
  F:    drivers/char/sonypi.c
  F:    drivers/platform/x86/sony-laptop.c
  F:    include/linux/sony-laptop.h
@@@ -15390,7 -15307,7 +15391,7 @@@ SVGA HANDLIN
  M:    Martin Mares <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/svga.txt
 +F:    Documentation/admin-guide/svga.rst
  F:    arch/x86/boot/video*
  
  SWIOTLB SUBSYSTEM
@@@ -15427,7 -15344,7 +15428,7 @@@ F:   drivers/dma-buf/dma-fence
  F:    drivers/dma-buf/sw_sync.c
  F:    include/linux/sync_file.h
  F:    include/uapi/linux/sync_file.h
 -F:    Documentation/sync_file.txt
 +F:    Documentation/driver-api/sync_file.rst
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  SYNOPSYS ARC ARCHITECTURE
@@@ -15749,7 -15666,6 +15750,7 @@@ F:   include/media/i2c/tw9910.
  
  TEE SUBSYSTEM
  M:    Jens Wiklander <[email protected]>
 +L:    [email protected]
  S:    Maintained
  F:    include/linux/tee_drv.h
  F:    include/uapi/linux/tee.h
@@@ -15905,7 -15821,7 +15906,7 @@@ M:   Viresh Kumar <[email protected]
  M:    Javi Merino <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/thermal/cpu-cooling-api.txt
 +F:    Documentation/thermal/cpu-cooling-api.rst
  F:    drivers/thermal/cpu_cooling.c
  F:    include/linux/cpu_cooling.h
  
@@@ -16049,7 -15965,7 +16050,7 @@@ F:   sound/soc/codecs/isabelle
  TI LP855x BACKLIGHT DRIVER
  M:    Milo Kim <[email protected]>
  S:    Maintained
 -F:    Documentation/backlight/lp855x-driver.txt
 +F:    Documentation/driver-api/backlight/lp855x-driver.rst
  F:    drivers/video/backlight/lp855x_bl.c
  F:    include/linux/platform_data/lp855x.h
  
@@@ -16313,7 -16229,7 +16314,7 @@@ M:   Greg Kroah-Hartman <gregkh@linuxfoun
  M:    Jiri Slaby <[email protected]>
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
 -F:    Documentation/serial/
 +F:    Documentation/driver-api/serial/
  F:    drivers/tty/
  F:    drivers/tty/serial/serial_core.c
  F:    include/linux/serial_core.h
@@@ -16924,7 -16840,7 +16925,7 @@@ R:   Cornelia Huck <[email protected]
  L:    [email protected]
  T:    git git://github.com/awilliam/linux-vfio.git
  S:    Maintained
 -F:    Documentation/vfio.txt
 +F:    Documentation/driver-api/vfio.rst
  F:    drivers/vfio/
  F:    include/linux/vfio.h
  F:    include/uapi/linux/vfio.h
@@@ -16933,7 -16849,7 +16934,7 @@@ VFIO MEDIATED DEVICE DRIVER
  M:    Kirti Wankhede <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/vfio-mediated-device.txt
 +F:    Documentation/driver-api/vfio-mediated-device.rst
  F:    drivers/vfio/mdev/
  F:    include/linux/mdev.h
  F:    samples/vfio-mdev/
@@@ -17121,13 -17037,6 +17122,13 @@@ S: Maintaine
  F:    drivers/virtio/virtio_input.c
  F:    include/uapi/linux/virtio_input.h
  
 +VIRTIO IOMMU DRIVER
 +M:    Jean-Philippe Brucker <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/iommu/virtio-iommu.c
 +F:    include/uapi/linux/virtio_iommu.h
 +
  VIRTUAL BOX GUEST DEVICE DRIVER
  M:    Hans de Goede <[email protected]>
  M:    Arnd Bergmann <[email protected]>
@@@ -17179,7 -17088,8 +17180,8 @@@ S:   Maintaine
  F:    drivers/misc/vmw_balloon.c
  
  VMWARE HYPERVISOR INTERFACE
- M:    Alok Kataria <[email protected]>
+ M:    Thomas Hellstrom <[email protected]>
+ M:    "VMware, Inc." <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    arch/x86/kernel/cpu/vmware.c
  W:    http://xfs.org/
  T:    git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
  S:    Supported
 -F:    Documentation/filesystems/xfs.txt
 +F:    Documentation/admin-guide/xfs.rst
  F:    Documentation/ABI/testing/sysfs-fs-xfs
 -F:    Documentation/filesystems/xfs.txt
  F:    Documentation/filesystems/xfs-delayed-logging-design.txt
  F:    Documentation/filesystems/xfs-self-describing-metadata.txt
  F:    fs/xfs/
@@@ -17814,7 -17725,7 +17816,7 @@@ R:   Sergey Senozhatsky <sergey.senozhats
  L:    [email protected]
  S:    Maintained
  F:    drivers/block/zram/
 -F:    Documentation/blockdev/zram.txt
 +F:    Documentation/admin-guide/blockdev/zram.rst
  
  ZS DECSTATION Z85C30 SERIAL DRIVER
  M:    "Maciej W. Rozycki" <[email protected]>
index 35a66fcfcb91bed1a5a4315cb6204bae76c6aa98,f7c70c1bee8b50e960a88db300128e8cdeb3b9dd..3f5a978a02a7d0906237e517580b6d5440a7fcba
@@@ -864,18 -864,84 +864,84 @@@ apicinterrupt IRQ_WORK_VECTOR                   irq_wor
   */
  #define CPU_TSS_IST(x) PER_CPU_VAR(cpu_tss_rw) + (TSS_ist + (x) * 8)
  
+ .macro idtentry_part do_sym, has_error_code:req, read_cr2:req, paranoid:req, shift_ist=-1, ist_offset=0
+       .if \paranoid
+       call    paranoid_entry
+       /* returned flag: ebx=0: need swapgs on exit, ebx=1: don't need it */
+       .else
+       call    error_entry
+       .endif
+       UNWIND_HINT_REGS
+       .if \read_cr2
+       /*
+        * Store CR2 early so subsequent faults cannot clobber it. Use R12 as
+        * intermediate storage as RDX can be clobbered in enter_from_user_mode().
+        * GET_CR2_INTO can clobber RAX.
+        */
+       GET_CR2_INTO(%r12);
+       .endif
+       .if \shift_ist != -1
+       TRACE_IRQS_OFF_DEBUG                    /* reload IDT in case of recursion */
+       .else
+       TRACE_IRQS_OFF
+       .endif
+       .if \paranoid == 0
+       testb   $3, CS(%rsp)
+       jz      .Lfrom_kernel_no_context_tracking_\@
+       CALL_enter_from_user_mode
+ .Lfrom_kernel_no_context_tracking_\@:
+       .endif
+       movq    %rsp, %rdi                      /* pt_regs pointer */
+       .if \has_error_code
+       movq    ORIG_RAX(%rsp), %rsi            /* get error code */
+       movq    $-1, ORIG_RAX(%rsp)             /* no syscall to restart */
+       .else
+       xorl    %esi, %esi                      /* no error code */
+       .endif
+       .if \shift_ist != -1
+       subq    $\ist_offset, CPU_TSS_IST(\shift_ist)
+       .endif
+       .if \read_cr2
+       movq    %r12, %rdx                      /* Move CR2 into 3rd argument */
+       .endif
+       call    \do_sym
+       .if \shift_ist != -1
+       addq    $\ist_offset, CPU_TSS_IST(\shift_ist)
+       .endif
+       .if \paranoid
+       /* this procedure expect "no swapgs" flag in ebx */
+       jmp     paranoid_exit
+       .else
+       jmp     error_exit
+       .endif
+ .endm
  /**
   * idtentry - Generate an IDT entry stub
   * @sym:              Name of the generated entry point
-  * @do_sym:           C function to be called
-  * @has_error_code:   True if this IDT vector has an error code on the stack
-  * @paranoid:                 non-zero means that this vector may be invoked from
+  * @do_sym:           C function to be called
+  * @has_error_code:   True if this IDT vector has an error code on the stack
+  * @paranoid:         non-zero means that this vector may be invoked from
   *                    kernel mode with user GSBASE and/or user CR3.
   *                    2 is special -- see below.
   * @shift_ist:                Set to an IST index if entries from kernel mode should
-  *                            decrement the IST stack so that nested entries get a
+  *                    decrement the IST stack so that nested entries get a
   *                    fresh stack.  (This is for #DB, which has a nasty habit
-  *                            of recursing.)
+  *                    of recursing.)
+  * @create_gap:               create a 6-word stack gap when coming from kernel mode.
+  * @read_cr2:         load CR2 into the 3rd argument; done before calling any C code
   *
   * idtentry generates an IDT stub that sets up a usable kernel context,
   * creates struct pt_regs, and calls @do_sym.  The stub has the following
   * @paranoid == 2 is special: the stub will never switch stacks.  This is for
   * #DF: if the thread stack is somehow unusable, we'll still get a useful OOPS.
   */
- .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1 ist_offset=0 create_gap=0
+ .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1 ist_offset=0 create_gap=0 read_cr2=0
  ENTRY(\sym)
        UNWIND_HINT_IRET_REGS offset=\has_error_code*8
  
        /* Sanity check */
-       .if \shift_ist != -1 && \paranoid == 0
+       .if \shift_ist != -1 && \paranoid != 1
        .error "using shift_ist requires paranoid=1"
        .endif
  
+       .if \create_gap && \paranoid
+       .error "using create_gap requires paranoid=0"
+       .endif
        ASM_CLAC
  
        .if \has_error_code == 0
  .Lfrom_usermode_no_gap_\@:
        .endif
  
-       .if \paranoid
-       call    paranoid_entry
-       .else
-       call    error_entry
-       .endif
-       UNWIND_HINT_REGS
-       /* returned flag: ebx=0: need swapgs on exit, ebx=1: don't need it */
-       .if \paranoid
-       .if \shift_ist != -1
-       TRACE_IRQS_OFF_DEBUG                    /* reload IDT in case of recursion */
-       .else
-       TRACE_IRQS_OFF
-       .endif
-       .endif
-       movq    %rsp, %rdi                      /* pt_regs pointer */
-       .if \has_error_code
-       movq    ORIG_RAX(%rsp), %rsi            /* get error code */
-       movq    $-1, ORIG_RAX(%rsp)             /* no syscall to restart */
-       .else
-       xorl    %esi, %esi                      /* no error code */
-       .endif
-       .if \shift_ist != -1
-       subq    $\ist_offset, CPU_TSS_IST(\shift_ist)
-       .endif
-       call    \do_sym
-       .if \shift_ist != -1
-       addq    $\ist_offset, CPU_TSS_IST(\shift_ist)
-       .endif
-       /* these procedures expect "no swapgs" flag in ebx */
-       .if \paranoid
-       jmp     paranoid_exit
-       .else
-       jmp     error_exit
-       .endif
+       idtentry_part \do_sym, \has_error_code, \read_cr2, \paranoid, \shift_ist, \ist_offset
  
        .if \paranoid == 1
        /*
         * run in real process context if user_mode(regs).
         */
  .Lfrom_usermode_switch_stack_\@:
-       call    error_entry
-       movq    %rsp, %rdi                      /* pt_regs pointer */
-       .if \has_error_code
-       movq    ORIG_RAX(%rsp), %rsi            /* get error code */
-       movq    $-1, ORIG_RAX(%rsp)             /* no syscall to restart */
-       .else
-       xorl    %esi, %esi                      /* no error code */
+       idtentry_part \do_sym, \has_error_code, \read_cr2, paranoid=0
        .endif
  
-       call    \do_sym
-       jmp     error_exit
-       .endif
  _ASM_NOKPROBE(\sym)
  END(\sym)
  .endm
@@@ -1007,7 -1025,7 +1025,7 @@@ idtentry overflow                       do_overflow                     has_e
  idtentry bounds                               do_bounds                       has_error_code=0
  idtentry invalid_op                   do_invalid_op                   has_error_code=0
  idtentry device_not_available         do_device_not_available         has_error_code=0
- idtentry double_fault                 do_double_fault                 has_error_code=1 paranoid=2
+ idtentry double_fault                 do_double_fault                 has_error_code=1 paranoid=2 read_cr2=1
  idtentry coprocessor_segment_overrun  do_coprocessor_segment_overrun  has_error_code=0
  idtentry invalid_TSS                  do_invalid_TSS                  has_error_code=1
  idtentry segment_not_present          do_segment_not_present          has_error_code=1
@@@ -1176,13 -1194,14 +1194,13 @@@ idtentry stack_segment               do_stack_segmen
  #ifdef CONFIG_XEN_PV
  idtentry xennmi                       do_nmi                  has_error_code=0
  idtentry xendebug             do_debug                has_error_code=0
 -idtentry xenint3              do_int3                 has_error_code=0
  #endif
  
  idtentry general_protection   do_general_protection   has_error_code=1
- idtentry page_fault           do_page_fault           has_error_code=1
+ idtentry page_fault           do_page_fault           has_error_code=1        read_cr2=1
  
  #ifdef CONFIG_KVM_GUEST
- idtentry async_page_fault     do_async_page_fault     has_error_code=1
+ idtentry async_page_fault     do_async_page_fault     has_error_code=1        read_cr2=1
  #endif
  
  #ifdef CONFIG_X86_MCE
@@@ -1281,18 -1300,9 +1299,9 @@@ ENTRY(error_entry
        movq    %rax, %rsp                      /* switch stack */
        ENCODE_FRAME_POINTER
        pushq   %r12
-       /*
-        * We need to tell lockdep that IRQs are off.  We can't do this until
-        * we fix gsbase, and we should do it before enter_from_user_mode
-        * (which can take locks).
-        */
-       TRACE_IRQS_OFF
-       CALL_enter_from_user_mode
        ret
  
  .Lerror_entry_done:
-       TRACE_IRQS_OFF
        ret
  
        /*
index d6f5ae2c79ab9e9d75487249891010f778060bea,5135282683d4dd5161528a9ebaf7ffed9b0ffa61..dce26f1d13e1a5e5a63d5feb2e2f30edecef97e3
@@@ -116,7 -116,7 +116,7 @@@ static inline void write_cr0(unsigned l
  
  static inline unsigned long read_cr2(void)
  {
-       return PVOP_CALL0(unsigned long, mmu.read_cr2);
+       return PVOP_CALLEE0(unsigned long, mmu.read_cr2);
  }
  
  static inline void write_cr2(unsigned long x)
@@@ -746,7 -746,6 +746,7 @@@ bool __raw_callee_save___native_vcpu_is
            PV_RESTORE_ALL_CALLER_REGS                                  \
            FRAME_END                                                   \
            "ret;"                                                      \
 +          ".size " PV_THUNK_NAME(func) ", .-" PV_THUNK_NAME(func) ";" \
            ".popsection")
  
  /* Get a reference to a callee-save function */
@@@ -910,13 -909,7 +910,7 @@@ extern void default_banner(void)
                  ANNOTATE_RETPOLINE_SAFE;                              \
                  call PARA_INDIRECT(pv_ops+PV_CPU_swapgs);             \
                 )
- #endif
- #define GET_CR2_INTO_RAX                              \
-       ANNOTATE_RETPOLINE_SAFE;                                \
-       call PARA_INDIRECT(pv_ops+PV_MMU_read_cr2);
  
- #ifdef CONFIG_PARAVIRT_XXL
  #define USERGS_SYSRET64                                                       \
        PARA_SITE(PARA_PATCH(PV_CPU_usergs_sysret64),                   \
                  ANNOTATE_RETPOLINE_SAFE;                              \
                  call PARA_INDIRECT(pv_ops+PV_IRQ_save_fl);        \
                  PV_RESTORE_REGS(clobbers | CLBR_CALLEE_SAVE);)
  #endif
- #endif
+ #endif /* CONFIG_PARAVIRT_XXL */
+ #endif        /* CONFIG_X86_64 */
+ #ifdef CONFIG_PARAVIRT_XXL
+ #define GET_CR2_INTO_AX                                                       \
+       PARA_SITE(PARA_PATCH(PV_MMU_read_cr2),                          \
+                 ANNOTATE_RETPOLINE_SAFE;                              \
+                 call PARA_INDIRECT(pv_ops+PV_MMU_read_cr2);           \
+                )
+ #endif /* CONFIG_PARAVIRT_XXL */
  
- #endif        /* CONFIG_X86_32 */
  
  #endif /* __ASSEMBLY__ */
  #else  /* CONFIG_PARAVIRT */
index f2bd284abc16d848165b10221a7e28b1038d693c,5dd1674ddf4c01662088a4a8fe6d4d3b8a94622b..b25e633033c3a853ae383ce7063a3133f3dac657
@@@ -40,7 -40,7 +40,7 @@@ asmlinkage void simd_coprocessor_error(
  asmlinkage void xen_divide_error(void);
  asmlinkage void xen_xennmi(void);
  asmlinkage void xen_xendebug(void);
 -asmlinkage void xen_xenint3(void);
 +asmlinkage void xen_int3(void);
  asmlinkage void xen_overflow(void);
  asmlinkage void xen_bounds(void);
  asmlinkage void xen_invalid_op(void);
@@@ -74,14 -74,14 +74,14 @@@ dotraplinkage void do_invalid_TSS(struc
  dotraplinkage void do_segment_not_present(struct pt_regs *regs, long error_code);
  dotraplinkage void do_stack_segment(struct pt_regs *regs, long error_code);
  #ifdef CONFIG_X86_64
- dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code);
+ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code, unsigned long address);
  asmlinkage __visible notrace struct pt_regs *sync_regs(struct pt_regs *eregs);
  asmlinkage __visible notrace
  struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s);
  void __init trap_init(void);
  #endif
  dotraplinkage void do_general_protection(struct pt_regs *regs, long error_code);
- dotraplinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code);
+ dotraplinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address);
  dotraplinkage void do_spurious_interrupt_bug(struct pt_regs *regs, long error_code);
  dotraplinkage void do_coprocessor_error(struct pt_regs *regs, long error_code);
  dotraplinkage void do_alignment_check(struct pt_regs *regs, long error_code);
index 66b4a775739731958d40109a0efa13fd2cc3db86,0e2d72929a8c032263340b90f4907799c9d9430a..a6342c899be596cccd6eff9663369e98c7eaafd0
@@@ -29,9 -29,7 +29,7 @@@
  #ifdef CONFIG_PARAVIRT_XXL
  #include <asm/asm-offsets.h>
  #include <asm/paravirt.h>
- #define GET_CR2_INTO(reg) GET_CR2_INTO_RAX ; movq %rax, reg
  #else
- #define GET_CR2_INTO(reg) movq %cr2, reg
  #define INTERRUPT_RETURN iretq
  #endif
  
@@@ -253,10 -251,10 +251,10 @@@ END(secondary_startup_64
   * start_secondary() via .Ljump_to_C_code.
   */
  ENTRY(start_cpu0)
 -      movq    initial_stack(%rip), %rsp
        UNWIND_HINT_EMPTY
 +      movq    initial_stack(%rip), %rsp
        jmp     .Ljump_to_C_code
 -ENDPROC(start_cpu0)
 +END(start_cpu0)
  #endif
  
        /* Both SMP bootup and ACPI suspend change these variables */
@@@ -323,7 -321,7 +321,7 @@@ early_idt_handler_common
  
        cmpq $14,%rsi           /* Page fault? */
        jnz 10f
-       GET_CR2_INTO(%rdi)      /* Can clobber any volatile register if pv */
+       GET_CR2_INTO(%rdi)      /* can clobber %rax if pv */
        call early_make_pgtable
        andl %eax,%eax
        jz 20f                  /* All good */
diff --combined arch/x86/kernel/kvm.c
index 6661bd2f08a612684da3844f1e894c7b3c6bc315,3231440d6253a0d7bbd52177ebb514639460239d..b7f34fe2171e472f7f64bf7f93c9bdfcaefba710
@@@ -242,23 -242,23 +242,23 @@@ EXPORT_SYMBOL_GPL(kvm_read_and_reset_pf
  NOKPROBE_SYMBOL(kvm_read_and_reset_pf_reason);
  
  dotraplinkage void
- do_async_page_fault(struct pt_regs *regs, unsigned long error_code)
+ do_async_page_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address)
  {
        enum ctx_state prev_state;
  
        switch (kvm_read_and_reset_pf_reason()) {
        default:
-               do_page_fault(regs, error_code);
+               do_page_fault(regs, error_code, address);
                break;
        case KVM_PV_REASON_PAGE_NOT_PRESENT:
                /* page is swapped out by the host. */
                prev_state = exception_enter();
-               kvm_async_pf_task_wait((u32)read_cr2(), !user_mode(regs));
+               kvm_async_pf_task_wait((u32)address, !user_mode(regs));
                exception_exit(prev_state);
                break;
        case KVM_PV_REASON_PAGE_READY:
                rcu_irq_enter();
-               kvm_async_pf_task_wake((u32)read_cr2());
+               kvm_async_pf_task_wake((u32)address);
                rcu_irq_exit();
                break;
        }
@@@ -838,7 -838,6 +838,7 @@@ asm
  "cmpb $0, " __stringify(KVM_STEAL_TIME_preempted) "+steal_time(%rax);"
  "setne        %al;"
  "ret;"
 +".size __raw_callee_save___kvm_vcpu_is_preempted, .-__raw_callee_save___kvm_vcpu_is_preempted;"
  ".popsection");
  
  #endif
diff --combined arch/x86/mm/fault.c
index d1634c59ed561cea4b58c8bd8bd3e2b795a74594,0799cc79efd33f67d40e4ce4e507c2f89fd96ad8..6c46095cd0d95297bb6e894a06b837ada471f320
@@@ -46,6 -46,23 +46,6 @@@ kmmio_fault(struct pt_regs *regs, unsig
        return 0;
  }
  
 -static nokprobe_inline int kprobes_fault(struct pt_regs *regs)
 -{
 -      if (!kprobes_built_in())
 -              return 0;
 -      if (user_mode(regs))
 -              return 0;
 -      /*
 -       * To be potentially processing a kprobe fault and to be allowed to call
 -       * kprobe_running(), we have to be non-preemptible.
 -       */
 -      if (preemptible())
 -              return 0;
 -      if (!kprobe_running())
 -              return 0;
 -      return kprobe_fault_handler(regs, X86_TRAP_PF);
 -}
 -
  /*
   * Prefetch quirks:
   *
@@@ -1265,7 -1282,7 +1265,7 @@@ do_kern_addr_fault(struct pt_regs *regs
                return;
  
        /* kprobes don't want to hook the spurious faults: */
 -      if (kprobes_fault(regs))
 +      if (kprobe_page_fault(regs, X86_TRAP_PF))
                return;
  
        /*
@@@ -1296,7 -1313,7 +1296,7 @@@ void do_user_addr_fault(struct pt_regs 
        mm = tsk->mm;
  
        /* kprobes don't want to hook the spurious faults: */
 -      if (unlikely(kprobes_fault(regs)))
 +      if (unlikely(kprobe_page_fault(regs, X86_TRAP_PF)))
                return;
  
        /*
@@@ -1490,9 -1507,8 +1490,8 @@@ good_area
  NOKPROBE_SYMBOL(do_user_addr_fault);
  
  /*
-  * This routine handles page faults.  It determines the address,
-  * and the problem, and then passes it off to one of the appropriate
-  * routines.
+  * Explicitly marked noinline such that the function tracer sees this as the
+  * page_fault entry point.
   */
  static noinline void
  __do_page_fault(struct pt_regs *regs, unsigned long hw_error_code,
  }
  NOKPROBE_SYMBOL(__do_page_fault);
  
- static nokprobe_inline void
- trace_page_fault_entries(unsigned long address, struct pt_regs *regs,
-                        unsigned long error_code)
+ static __always_inline void
+ trace_page_fault_entries(struct pt_regs *regs, unsigned long error_code,
+                        unsigned long address)
  {
+       if (!trace_pagefault_enabled())
+               return;
        if (user_mode(regs))
                trace_page_fault_user(address, regs, error_code);
        else
                trace_page_fault_kernel(address, regs, error_code);
  }
  
- /*
-  * We must have this function blacklisted from kprobes, tagged with notrace
-  * and call read_cr2() before calling anything else. To avoid calling any
-  * kind of tracing machinery before we've observed the CR2 value.
-  *
-  * exception_{enter,exit}() contains all sorts of tracepoints.
-  */
- dotraplinkage void notrace
- do_page_fault(struct pt_regs *regs, unsigned long error_code)
+ dotraplinkage void
+ do_page_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address)
  {
-       unsigned long address = read_cr2(); /* Get the faulting address */
        enum ctx_state prev_state;
  
        prev_state = exception_enter();
-       if (trace_pagefault_enabled())
-               trace_page_fault_entries(address, regs, error_code);
+       trace_page_fault_entries(regs, error_code, address);
        __do_page_fault(regs, error_code, address);
        exception_exit(prev_state);
  }
index bed6bb93c9652cfdc2bc9dbad64ad89ed2f72d2e,26b63d051bda8f27516e5c041268b7bc3154a860..7ceb32821093a226995a86e9832c59b9b9d586ae
@@@ -596,12 -596,12 +596,12 @@@ struct trap_array_entry 
  
  static struct trap_array_entry trap_array[] = {
        { debug,                       xen_xendebug,                    true },
 -      { int3,                        xen_xenint3,                     true },
        { double_fault,                xen_double_fault,                true },
  #ifdef CONFIG_X86_MCE
        { machine_check,               xen_machine_check,               true },
  #endif
        { nmi,                         xen_xennmi,                      true },
 +      { int3,                        xen_int3,                        false },
        { overflow,                    xen_overflow,                    false },
  #ifdef CONFIG_IA32_EMULATION
        { entry_INT80_compat,          xen_entry_INT80_compat,          false },
@@@ -998,7 -998,8 +998,8 @@@ void __init xen_setup_vcpu_info_placeme
                        __PV_IS_CALLEE_SAVE(xen_irq_disable_direct);
                pv_ops.irq.irq_enable =
                        __PV_IS_CALLEE_SAVE(xen_irq_enable_direct);
-               pv_ops.mmu.read_cr2 = xen_read_cr2_direct;
+               pv_ops.mmu.read_cr2 =
+                       __PV_IS_CALLEE_SAVE(xen_read_cr2_direct);
        }
  }
  
@@@ -1463,5 -1464,4 +1464,5 @@@ const __initconst struct hypervisor_x8
        .detect                 = xen_platform_pv,
        .type                   = X86_HYPER_XEN_PV,
        .runtime.pin_vcpu       = xen_pin_vcpu,
 +      .ignore_nopv            = true,
  };
This page took 0.199147 seconds and 4 git commands to generate.