]> Git Repo - linux.git/commitdiff
Merge tag 'printk-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek...
authorLinus Torvalds <[email protected]>
Tue, 26 Nov 2019 03:40:40 +0000 (19:40 -0800)
committerLinus Torvalds <[email protected]>
Tue, 26 Nov 2019 03:40:40 +0000 (19:40 -0800)
Pull printk updates from Petr Mladek:

 - Allow to print symbolic error names via new %pe modifier.

 - Use pr_warn() instead of the remaining pr_warning() calls. Fix
   formatting of the related lines.

 - Add VSPRINTF entry to MAINTAINERS.

* tag 'printk-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: (32 commits)
  checkpatch: don't warn about new vsprintf pointer extension '%pe'
  MAINTAINERS: Add VSPRINTF
  tools lib api: Renaming pr_warning to pr_warn
  ASoC: samsung: Use pr_warn instead of pr_warning
  lib: cpu_rmap: Use pr_warn instead of pr_warning
  trace: Use pr_warn instead of pr_warning
  dma-debug: Use pr_warn instead of pr_warning
  vgacon: Use pr_warn instead of pr_warning
  fs: afs: Use pr_warn instead of pr_warning
  sh/intc: Use pr_warn instead of pr_warning
  scsi: Use pr_warn instead of pr_warning
  platform/x86: intel_oaktrail: Use pr_warn instead of pr_warning
  platform/x86: asus-laptop: Use pr_warn instead of pr_warning
  platform/x86: eeepc-laptop: Use pr_warn instead of pr_warning
  oprofile: Use pr_warn instead of pr_warning
  of: Use pr_warn instead of pr_warning
  macintosh: Use pr_warn instead of pr_warning
  idsn: Use pr_warn instead of pr_warning
  ide: Use pr_warn instead of pr_warning
  crypto: n2: Use pr_warn instead of pr_warning
  ...

24 files changed:
1  2 
Documentation/core-api/printk-formats.rst
MAINTAINERS
arch/arm64/kernel/hw_breakpoint.c
arch/arm64/kernel/smp.c
arch/ia64/kernel/setup.c
arch/x86/kernel/amd_gart_64.c
arch/x86/kernel/apic/apic.c
arch/x86/kernel/umip.c
arch/x86/mm/testmmiotrace.c
drivers/acpi/apei/ghes.c
drivers/crypto/n2_core.c
drivers/isdn/hardware/mISDN/avmfritz.c
drivers/isdn/hardware/mISDN/hfcpci.c
drivers/isdn/hardware/mISDN/hfcsusb.c
drivers/isdn/hardware/mISDN/mISDNipac.c
drivers/isdn/hardware/mISDN/mISDNisar.c
drivers/isdn/hardware/mISDN/netjet.c
drivers/isdn/hardware/mISDN/w6692.c
drivers/of/fdt.c
fs/afs/inode.c
fs/afs/yfsclient.c
lib/Kconfig.debug
lib/Makefile
scripts/checkpatch.pl

index ecbebf4ca8e7e74641ce6d0bf247a0e9aaade724,dffd5c0b24f8858c70a5e3e9dbf3e6829b683de0..050f34f3a70f07147111532aaa1e61fee0066924
@@@ -13,10 -13,10 +13,10 @@@ Integer type
  
        If variable is of Type,         use printk format specifier:
        ------------------------------------------------------------
 -              char                    %hhd or %hhx
 -              unsigned char           %hhu or %hhx
 -              short int               %hd or %hx
 -              unsigned short int      %hu or %hx
 +              char                    %d or %x
 +              unsigned char           %u or %x
 +              short int               %d or %x
 +              unsigned short int      %u or %x
                int                     %d or %x
                unsigned int            %u or %x
                long                    %ld or %lx
                unsigned long long      %llu or %llx
                size_t                  %zu or %zx
                ssize_t                 %zd or %zx
 -              s8                      %hhd or %hhx
 -              u8                      %hhu or %hhx
 -              s16                     %hd or %hx
 -              u16                     %hu or %hx
 +              s8                      %d or %x
 +              u8                      %u or %x
 +              s16                     %d or %x
 +              u16                     %u or %x
                s32                     %d or %x
                u32                     %u or %x
                s64                     %lld or %llx
@@@ -79,6 -79,18 +79,18 @@@ has the added benefit of providing a un
  the first 32 bits are zeroed. The kernel will print ``(ptrval)`` until it
  gathers enough entropy. If you *really* want the address see %px below.
  
+ Error Pointers
+ --------------
+ ::
+       %pe     -ENOSPC
+ For printing error pointers (i.e. a pointer for which IS_ERR() is true)
+ as a symbolic error name. Error values for which no symbolic name is
+ known are printed in decimal, while a non-ERR_PTR passed as the
+ argument to %pe gets treated as ordinary %p.
  Symbols/Function Pointers
  -------------------------
  
@@@ -119,7 -131,7 +131,7 @@@ Kernel Pointer
  
  For printing kernel pointers which should be hidden from unprivileged
  users. The behaviour of %pK depends on the kptr_restrict sysctl - see
 -Documentation/sysctl/kernel.txt for more details.
 +Documentation/admin-guide/sysctl/kernel.rst for more details.
  
  Unmodified Addresses
  --------------------
diff --combined MAINTAINERS
index 3e833d20d0f5a5879ec3ad105dbdf1f940984529,e5b911f93f8346f2a9d9cc7fc40c15aee666d452..9d0729c7b2e1fbe5cf8c3a7e0307d750c511faf3
@@@ -183,7 -183,7 +183,7 @@@ M: Realtek linux nic maintainers <nic_s
  M:    Heiner Kallweit <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/net/ethernet/realtek/r8169.c
 +F:    drivers/net/ethernet/realtek/r8169*
  
  8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
  M:    Greg Kroah-Hartman <[email protected]>
@@@ -517,6 -517,14 +517,6 @@@ W:        http://ez.analog.com/community/linux
  S:    Supported
  F:    drivers/video/backlight/adp8860_bl.c
  
 -ADS1015 HARDWARE MONITOR DRIVER
 -M:    Dirk Eibach <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/hwmon/ads1015.rst
 -F:    drivers/hwmon/ads1015.c
 -F:    include/linux/platform_data/ads1015.h
 -
  ADT746X FAN DRIVER
  M:    Colin Leroy <[email protected]>
  S:    Maintained
@@@ -543,7 -551,6 +543,7 @@@ W: http://wiki.analog.com/ADXL34
  W:    http://ez.analog.com/community/linux-device-drivers
  S:    Supported
  F:    drivers/input/misc/adxl34x.c
 +F:    Documentation/devicetree/bindings/iio/accel/adi,adxl345.yaml
  
  ADXL372 THREE-AXIS DIGITAL ACCELEROMETER DRIVER
  M:    Stefan Popa <[email protected]>
@@@ -552,7 -559,7 +552,7 @@@ S: Supporte
  F:    drivers/iio/accel/adxl372.c
  F:    drivers/iio/accel/adxl372_spi.c
  F:    drivers/iio/accel/adxl372_i2c.c
 -F:    Documentation/devicetree/bindings/iio/accel/adxl372.txt
 +F:    Documentation/devicetree/bindings/iio/accel/adi,adxl372.yaml
  
  AF9013 MEDIA DRIVER
  M:    Antti Palosaari <[email protected]>
@@@ -641,13 -648,6 +641,13 @@@ M:       Lino Sanfilippo <LinoSanfilippo@gmx.
  S:    Maintained
  F:    drivers/net/ethernet/alacritech/*
  
 +FORCEDETH GIGABIT ETHERNET DRIVER
 +M:    Rain River <[email protected]>
 +M:    Zhu Yanjun <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/nvidia/*
 +
  ALCATEL SPEEDTOUCH USB DRIVER
  M:    Duncan Sands <[email protected]>
  L:    [email protected]
@@@ -665,7 -665,7 +665,7 @@@ ALI1563 I2C DRIVE
  M:    Rudolf Marek <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/i2c/busses/i2c-ali1563
 +F:    Documentation/i2c/busses/i2c-ali1563.rst
  F:    drivers/i2c/busses/i2c-ali1563.c
  
  ALLEGRO DVT VIDEO IP CORE DRIVER
@@@ -675,13 -675,6 +675,13 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/staging/media/allegro-dvt/
  
 +ALLWINNER CPUFREQ DRIVER
 +M:    Yangtao Li <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/opp/sun50i-nvmem-cpufreq.txt
 +F:    drivers/cpufreq/sun50i-cpufreq-nvmem.c
 +
  ALLWINNER SECURITY SYSTEM
  M:    Corentin Labbe <[email protected]>
  L:    [email protected]
@@@ -689,7 -682,7 +689,7 @@@ S: Maintaine
  F:    drivers/crypto/sunxi-ss/
  
  ALLWINNER VPU DRIVER
 -M:    Maxime Ripard <m[email protected]>
 +M:    Maxime Ripard <m[email protected]>
  M:    Paul Kocialkowski <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -729,7 -722,7 +729,7 @@@ ALTERA SYSTEM MANAGER DRIVE
  M:    Thor Thayer <[email protected]>
  S:    Maintained
  F:    drivers/mfd/altera-sysmgr.c
 -F:    include/linux/mfd/altera-sysgmr.h
 +F:    include/linux/mfd/altera-sysmgr.h
  
  ALTERA SYSTEM RESOURCE DRIVER FOR ARRIA10 DEVKIT
  M:    Thor Thayer <[email protected]>
@@@ -835,11 -828,17 +835,11 @@@ F:      drivers/iommu/amd_iommu*.[ch
  F:    include/linux/amd-iommu.h
  
  AMD KFD
 -M:    Oded Gabbay <[email protected]>
 -L:    [email protected]
 -T:    git git://people.freedesktop.org/~gabbayo/linux.git
 -S:    Supported
 -F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
 -F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
 -F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
 -F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
 -F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
 -F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c
 -F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
 +M:    Felix Kuehling <[email protected]>
 +L:    [email protected]
 +T:    git git://people.freedesktop.org/~agd5f/linux
 +S:    Supported
 +F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd*.[ch]
  F:    drivers/gpu/drm/amd/amdkfd/
  F:    drivers/gpu/drm/amd/include/cik_structs.h
  F:    drivers/gpu/drm/amd/include/kgd_kfd_interface.h
@@@ -899,16 -898,15 +899,16 @@@ L:      [email protected]
  W:    http://ez.analog.com/community/linux-device-drivers
  S:    Supported
  F:    drivers/iio/adc/ad7124.c
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml
  
  ANALOG DEVICES INC AD7606 DRIVER
  M:    Stefan Popa <[email protected]>
 +M:    Beniamin Bia <[email protected]>
  L:    [email protected]
  W:    http://ez.analog.com/community/linux-device-drivers
  S:    Supported
  F:    drivers/iio/adc/ad7606.c
 -F:    Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
  
  ANALOG DEVICES INC AD7768-1 DRIVER
  M:    Stefan Popa <[email protected]>
@@@ -918,15 -916,6 +918,15 @@@ S:       Supporte
  F:    drivers/iio/adc/ad7768-1.c
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7768-1.txt
  
 +ANALOG DEVICES INC AD7780 DRIVER
 +M:    Michael Hennerich <[email protected]>
 +M:    Renato Lui Geh <[email protected]>
 +L:    [email protected]
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/iio/adc/ad7780.c
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
 +
  ANALOG DEVICES INC AD9389B DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -939,29 -928,6 +939,29 @@@ S:       Supporte
  F:    drivers/mux/adgs1408.c
  F:    Documentation/devicetree/bindings/mux/adi,adgs1408.txt
  
 +ANALOG DEVICES INC ADIN DRIVER
 +M:    Alexandru Ardelean <[email protected]>
 +L:    [email protected]
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/net/phy/adin.c
 +F:    Documentation/devicetree/bindings/net/adi,adin.yaml
 +
 +ANALOG DEVICES INC ADIS DRIVER LIBRARY
 +M:    Alexandru Ardelean <[email protected]>
 +S:    Supported
 +L:    [email protected]
 +F:    include/linux/iio/imu/adis.h
 +F:    drivers/iio/imu/adis.c
 +
 +ANALOG DEVICES INC ADIS16460 DRIVER
 +M:    Dragos Bogdan <[email protected]>
 +S:    Supported
 +L:    [email protected]
 +W:    http://ez.analog.com/community/linux-device-drivers
 +F:    drivers/iio/imu/adis16460.c
 +F:    Documentation/devicetree/bindings/iio/imu/adi,adis16460.yaml
 +
  ANALOG DEVICES INC ADP5061 DRIVER
  M:    Stefan Popa <[email protected]>
  L:    [email protected]
@@@ -1172,7 -1138,7 +1172,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
  S:    Maintained
  F:    drivers/media/i2c/aptina-pll.*
  
 +AQUANTIA ETHERNET DRIVER (atlantic)
 +M:    Igor Russkikh <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    http://www.aquantia.com
 +Q:    http://patchwork.ozlabs.org/project/netdev/list/
 +F:    drivers/net/ethernet/aquantia/atlantic/
 +F:    Documentation/networking/device_drivers/aquantia/atlantic.txt
 +
  ARC FRAMEBUFFER DRIVER
  M:    Jaya Kumar <[email protected]>
  S:    Maintained
@@@ -1211,7 -1168,7 +1211,7 @@@ F:      include/uapi/linux/if_arcnet.
  
  ARM ARCHITECTED TIMER DRIVER
  M:    Mark Rutland <[email protected]>
 -M:    Marc Zyngier <ma[email protected]>
 +M:    Marc Zyngier <ma[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/include/asm/arch_timer.h
@@@ -1253,7 -1210,7 +1253,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
@@@ -1264,7 -1221,7 +1264,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
@@@ -1281,7 -1238,7 +1281,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
@@@ -1367,7 -1324,8 +1367,7 @@@ M:      Will Deacon <[email protected]
  R:    Robin Murphy <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -F:    drivers/iommu/arm-smmu.c
 -F:    drivers/iommu/arm-smmu-v3.c
 +F:    drivers/iommu/arm-smmu*
  F:    drivers/iommu/io-pgtable-arm.c
  F:    drivers/iommu/io-pgtable-arm-v7s.c
  
@@@ -1395,7 -1353,7 +1395,7 @@@ F:      drivers/pinctrl/actions/
  F:    drivers/soc/actions/
  F:    include/dt-bindings/power/owl-*
  F:    include/linux/soc/actions/
 -F:    Documentation/devicetree/bindings/arm/actions.txt
 +F:    Documentation/devicetree/bindings/arm/actions.yaml
  F:    Documentation/devicetree/bindings/clock/actions,owl-cmu.txt
  F:    Documentation/devicetree/bindings/dma/owl-dma.txt
  F:    Documentation/devicetree/bindings/i2c/i2c-owl.txt
@@@ -1424,7 -1382,7 +1424,7 @@@ S:      Maintaine
  F:    drivers/clk/sunxi/
  
  ARM/Allwinner sunXi SoC support
 -M:    Maxime Ripard <m[email protected]>
 +M:    Maxime Ripard <m[email protected]>
  M:    Chen-Yu Tsai <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -1437,14 -1395,6 +1437,14 @@@ F:    drivers/pinctrl/sunxi
  F:    drivers/soc/sunxi/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git
  
 +Allwinner A10 CSI driver
 +M:    Maxime Ripard <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/platform/sunxi/sun4i-csi/
 +F:    Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml
 +S:    Maintained
 +
  ARM/Amlogic Meson SoC CLOCK FRAMEWORK
  M:    Neil Armstrong <[email protected]>
  M:    Jerome Brunet <[email protected]>
@@@ -1467,7 -1417,6 +1467,7 @@@ F:      arch/arm64/boot/dts/amlogic
  F:    drivers/pinctrl/meson/
  F:    drivers/mmc/host/meson*
  F:    drivers/soc/amlogic/
 +F:    drivers/rtc/rtc-meson*
  N:    meson
  
  ARM/Amlogic Meson SoC Sound Drivers
@@@ -1496,7 -1445,6 +1496,7 @@@ F:      arch/arm/mach-artpe
  F:    arch/arm/boot/dts/artpec6*
  F:    drivers/clk/axis
  F:    drivers/crypto/axis
 +F:    drivers/mmc/host/usdhi6rol0.c
  F:    drivers/pinctrl/pinctrl-artpec*
  F:    Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
  
@@@ -1608,8 -1556,8 +1608,8 @@@ R:      Suzuki K Poulose <suzuki.poulose@arm
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/hwtracing/coresight/*
 -F:    Documentation/trace/coresight.txt
 -F:    Documentation/trace/coresight-cpu-debug.txt
 +F:    Documentation/trace/coresight.rst
 +F:    Documentation/trace/coresight-cpu-debug.rst
  F:    Documentation/devicetree/bindings/arm/coresight.txt
  F:    Documentation/devicetree/bindings/arm/coresight-cpu-debug.txt
  F:    Documentation/ABI/testing/sysfs-bus-coresight-devices-*
@@@ -1652,21 -1600,6 +1652,21 @@@ F:    drivers/clocksource/timer-atlas7.
  N:    [^a-z]sirf
  X:    drivers/gnss
  
 +ARM/CZ.NIC TURRIS MOX SUPPORT
 +M:    Marek Behun <[email protected]>
 +W:    http://mox.turris.cz
 +S:    Maintained
 +F:    Documentation/ABI/testing/debugfs-moxtet
 +F:    Documentation/ABI/testing/sysfs-bus-moxtet-devices
 +F:    Documentation/ABI/testing/sysfs-firmware-turris-mox-rwtm
 +F:    Documentation/devicetree/bindings/bus/moxtet.txt
 +F:    Documentation/devicetree/bindings/firmware/cznic,turris-mox-rwtm.txt
 +F:    Documentation/devicetree/bindings/gpio/gpio-moxtet.txt
 +F:    include/linux/moxtet.h
 +F:    drivers/bus/moxtet.c
 +F:    drivers/firmware/turris-mox-rwtm.c
 +F:    drivers/gpio/gpio-moxtet.c
 +
  ARM/EBSA110 MACHINE SUPPORT
  M:    Russell King <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-pxa/colibri-pxa270-income.c
  
 -ARM/INTEL IOP13XX ARM ARCHITECTURE
 -M:    Lennert Buytenhek <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 -
  ARM/INTEL IOP32X ARM ARCHITECTURE
  M:    Lennert Buytenhek <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  
 -ARM/INTEL IOP33X ARM ARCHITECTURE
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Orphan
 -
  ARM/INTEL IQ81342EX MACHINE SUPPORT
  M:    Lennert Buytenhek <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -1895,7 -1837,6 +1895,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]>
@@@ -1916,7 -1857,6 +1916,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]>
@@@ -1953,6 -1893,12 +1953,6 @@@ S:     Maintaine
  F:    drivers/phy/mediatek/
  F:    Documentation/devicetree/bindings/phy/phy-mtk-*
  
 -ARM/MICREL KS8695 ARCHITECTURE
 -M:    Greg Ungerer <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -F:    arch/arm/mach-ks8695/
 -S:    Odd Fixes
 -
  ARM/Microchip (AT91) SoC support
  M:    Nicolas Ferre <[email protected]>
  M:    Alexandre Belloni <[email protected]>
@@@ -1994,7 -1940,6 +1994,7 @@@ F:      Documentation/devicetree/bindings/i2
  F:    arch/arm/mach-nomadik/
  F:    arch/arm/mach-u300/
  F:    arch/arm/mach-ux500/
 +F:    drivers/soc/ux500/
  F:    arch/arm/boot/dts/ste-*
  F:    drivers/clk/clk-nomadik.c
  F:    drivers/clk/clk-u300.c
@@@ -2038,6 -1983,22 +2038,6 @@@ F:     drivers/*/*npcm
  F:    Documentation/devicetree/bindings/*/*npcm*
  F:    Documentation/devicetree/bindings/*/*/*npcm*
  
 -ARM/NUVOTON W90X900 ARM ARCHITECTURE
 -M:    Wan ZongShun <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -W:    http://www.mcuos.com
 -S:    Maintained
 -F:    arch/arm/mach-w90x900/
 -F:    drivers/input/keyboard/w90p910_keypad.c
 -F:    drivers/input/touchscreen/w90p910_ts.c
 -F:    drivers/watchdog/nuc900_wdt.c
 -F:    drivers/net/ethernet/nuvoton/w90p910_ether.c
 -F:    drivers/mtd/nand/raw/nuc900_nand.c
 -F:    drivers/rtc/rtc-nuc900.c
 -F:    drivers/spi/spi-nuc900.c
 -F:    drivers/usb/host/ehci-w90x900.c
 -F:    drivers/video/fbdev/nuc900fb.c
 -
  ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
  L:    [email protected] (subscribers-only)
  W:    http://wiki.openmoko.org/wiki/Neo_FreeRunner
@@@ -2102,6 -2063,7 +2102,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/
@@@ -2123,7 -2085,7 +2123,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*
@@@ -2152,7 -2114,7 +2152,7 @@@ F:      arch/arm/boot/dts/rda8810pl-
  F:    drivers/clocksource/timer-rda.c
  F:    drivers/irqchip/irq-rda-intc.c
  F:    drivers/tty/serial/rda-uart.c
 -F:    Documentation/devicetree/bindings/arm/rda.txt
 +F:    Documentation/devicetree/bindings/arm/rda.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/rda,8810pl-intc.txt
  F:    Documentation/devicetree/bindings/serial/rda,8810pl-uart.txt
  F:    Documentation/devicetree/bindings/timer/rda,8810pl-timer.txt
@@@ -2162,14 -2124,14 +2162,14 @@@ M:   Andreas Färber <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm64/boot/dts/realtek/
 -F:    Documentation/devicetree/bindings/arm/realtek.txt
 +F:    Documentation/devicetree/bindings/arm/realtek.yaml
  
  ARM/RENESAS ARM64 ARCHITECTURE
 -M:    Simon Horman <[email protected]>
 +M:    Geert Uytterhoeven <[email protected]>
  M:    Magnus Damm <[email protected]>
  L:    [email protected]
  Q:    http://patchwork.kernel.org/project/linux-renesas-soc/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
  S:    Supported
  F:    arch/arm64/boot/dts/renesas/
  F:    Documentation/devicetree/bindings/arm/renesas.yaml
@@@ -2228,10 -2190,9 +2228,10 @@@ F:    drivers/*/*s3c24
  F:    drivers/*/*/*s3c24*
  F:    drivers/*/*s3c64xx*
  F:    drivers/*/*s5pv210*
 -F:    drivers/memory/samsung/*
 -F:    drivers/soc/samsung/*
 -F:    Documentation/arm/Samsung/
 +F:    drivers/memory/samsung/
 +F:    drivers/soc/samsung/
 +F:    include/linux/soc/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
@@@ -2280,11 -2241,11 +2280,11 @@@ S:   Maintaine
  F:    drivers/media/platform/s5p-mfc/
  
  ARM/SHMOBILE ARM ARCHITECTURE
 -M:    Simon Horman <[email protected]>
 +M:    Geert Uytterhoeven <[email protected]>
  M:    Magnus Damm <[email protected]>
  L:    [email protected]
  Q:    http://patchwork.kernel.org/project/linux-renesas-soc/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
  S:    Supported
  F:    arch/arm/boot/dts/emev2*
  F:    arch/arm/boot/dts/gr-peach*
@@@ -2323,13 -2284,11 +2323,13 @@@ F:   drivers/edac/altera_edac
  
  ARM/SPREADTRUM SoC SUPPORT
  M:    Orson Zhai <[email protected]>
 -M:    Baolin Wang <baolin.wang@linaro.org>
 +M:    Baolin Wang <baolin.wang[email protected]>
  M:    Chunyan Zhang <[email protected]>
  S:    Maintained
  F:    arch/arm64/boot/dts/sprd
  N:    sprd
 +N:    sc27xx
 +N:    sc2731
  
  ARM/STI ARCHITECTURE
  M:    Patrice Chotard <[email protected]>
@@@ -2611,7 -2570,6 +2611,7 @@@ S:      Maintaine
  F:    arch/arm64/
  X:    arch/arm64/boot/dts/
  F:    Documentation/arm64/
 +F:    tools/testing/selftests/arm64/
  
  AS3645A LED FLASH CONTROLLER DRIVER
  M:    Sakari Ailus <[email protected]>
@@@ -2641,15 -2599,6 +2641,15 @@@ S:    Maintaine
  F:    Documentation/hwmon/asc7621.rst
  F:    drivers/hwmon/asc7621.c
  
 +ASPEED PINCTRL DRIVERS
 +M:    Andrew Jeffery <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/pinctrl/aspeed/
 +F:    Documentation/devicetree/bindings/pinctrl/aspeed,*
 +
  ASPEED VIDEO ENGINE DRIVER
  M:    Eddie James <[email protected]>
  L:    [email protected]
@@@ -2705,7 -2654,7 +2705,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
@@@ -2921,14 -2870,11 +2921,14 @@@ F:   drivers/video/backlight
  F:    include/linux/backlight.h
  F:    include/linux/pwm_backlight.h
  F:    Documentation/devicetree/bindings/leds/backlight
 +F:    Documentation/ABI/stable/sysfs-class-backlight
 +F:    Documentation/ABI/testing/sysfs-class-backlight
  
  BATMAN ADVANCED
  M:    Marek Lindner <[email protected]>
  M:    Simon Wunderlich <[email protected]>
  M:    Antonio Quartulli <[email protected]>
 +M:    Sven Eckelmann <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  W:    https://www.open-mesh.org/
  B:    https://www.open-mesh.org/projects/batman-adv/issues
@@@ -2987,7 -2933,7 +2987,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]>
@@@ -3054,7 -3000,6 +3054,7 @@@ M:      Daniel Borkmann <[email protected]
  R:    Martin KaFai Lau <[email protected]>
  R:    Song Liu <[email protected]>
  R:    Yonghong Song <[email protected]>
 +R:    Andrii Nakryiko <[email protected]>
  L:    [email protected]
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git
@@@ -3100,7 -3045,7 +3100,7 @@@ S:      Supporte
  F:    arch/arm64/net/
  
  BPF JIT for MIPS (32-BIT AND 64-BIT)
 -M:    Paul Burton <paul[email protected]>
 +M:    Paul Burton <paul[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -3128,9 -3073,9 +3128,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
@@@ -3187,7 -3132,7 +3187,7 @@@ N:      bcm216
  N:    kona
  F:    arch/arm/mach-bcm/
  
 -BROADCOM BCM2835 ARM ARCHITECTURE
 +BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE
  M:    Eric Anholt <[email protected]>
  M:    Stefan Wahren <[email protected]>
  L:    [email protected]
@@@ -3195,7 -3140,6 +3195,7 @@@ L:      [email protected]
  L:    [email protected] (moderated for non-subscribers)
  T:    git git://github.com/anholt/linux
  S:    Maintained
 +N:    bcm2711
  N:    bcm2835
  F:    drivers/staging/vc04_services
  
@@@ -3242,6 -3186,8 +3242,6 @@@ S:      Maintaine
  F:    drivers/usb/gadget/udc/bcm63xx_udc.*
  
  BROADCOM BCM7XXX ARM ARCHITECTURE
 -M:    Brian Norris <[email protected]>
 -M:    Gregory Fong <[email protected]>
  M:    Florian Fainelli <[email protected]>
  M:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
@@@ -3262,6 -3208,7 +3262,6 @@@ S:      Maintaine
  F:    drivers/cpufreq/bmips-cpufreq.c
  
  BROADCOM BMIPS MIPS ARCHITECTURE
 -M:    Kevin Cernekee <[email protected]>
  M:    Florian Fainelli <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -3590,19 -3537,12 +3590,19 @@@ F:   Documentation/filesystems/caching/ca
  F:    fs/cachefiles/
  
  CADENCE MIPI-CSI2 BRIDGES
 -M:    Maxime Ripard <m[email protected]>
 +M:    Maxime Ripard <m[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/cdns,*.txt
  F:    drivers/media/platform/cadence/cdns-csi2*
  
 +CADENCE NAND DRIVER
 +M:    Piotr Sroka <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/mtd/nand/raw/cadence-nand-controller.c
 +F:    Documentation/devicetree/bindings/mtd/cadence-nand-controller.txt
 +
  CADET FM/AM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -3655,12 -3595,9 +3655,12 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/net/can/
  F:    drivers/net/can/
  F:    include/linux/can/dev.h
 +F:    include/linux/can/led.h
 +F:    include/linux/can/rx-offload.h
  F:    include/linux/can/platform/
  F:    include/uapi/linux/can/error.h
  F:    include/uapi/linux/can/netlink.h
 +F:    include/uapi/linux/can/vxcan.h
  
  CAN NETWORK LAYER
  M:    Oliver Hartkopp <[email protected]>
@@@ -3673,23 -3610,11 +3673,23 @@@ S:   Maintaine
  F:    Documentation/networking/can.rst
  F:    net/can/
  F:    include/linux/can/core.h
 +F:    include/linux/can/skb.h
 +F:    include/net/netns/can.h
  F:    include/uapi/linux/can.h
  F:    include/uapi/linux/can/bcm.h
  F:    include/uapi/linux/can/raw.h
  F:    include/uapi/linux/can/gw.h
  
 +CAN-J1939 NETWORK LAYER
 +M:    Robin van der Gracht <[email protected]>
 +M:    Oleksij Rempel <[email protected]>
 +R:    Pengutronix Kernel Team <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/networking/j1939.txt
 +F:    net/can/j1939/
 +F:    include/uapi/linux/can/j1939.h
 +
  CAPABILITIES
  M:    Serge Hallyn <[email protected]>
  L:    [email protected]
@@@ -3745,6 -3670,7 +3745,6 @@@ F:      drivers/crypto/cavium/cpt
  
  CAVIUM THUNDERX2 ARM64 SOC
  M:    Robert Richter <[email protected]>
 -M:    Jayachandran C <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm64/boot/dts/cavium/thunder2-99xx*
@@@ -3804,7 -3730,7 +3804,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/
@@@ -3816,7 -3742,7 +3816,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]
@@@ -3838,9 -3764,14 +3838,9 @@@ F:     scripts/sign-file.
  F:    scripts/extract-cert.c
  
  CERTIFIED WIRELESS USB (WUSB) SUBSYSTEM:
 -L:    [email protected]
 -S:    Orphan
 -F:    Documentation/usb/WUSB-Design-overview.txt
 -F:    Documentation/usb/wusb-cbaf
 -F:    drivers/usb/host/hwa-hc.c
 -F:    drivers/usb/host/whci/
 -F:    drivers/usb/wusbcore/
 -F:    include/linux/usb/wusb*
 +L:    [email protected]
 +S:    Obsolete
 +F:    drivers/staging/wusbcore/
  
  CFAG12864B LCD DRIVER
  M:    Miguel Ojeda Sandonis <[email protected]>
@@@ -3970,7 -3901,7 +3970,7 @@@ F:      Documentation/devicetree/bindings/hw
  F:    Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.txt
  F:    Documentation/devicetree/bindings/regulator/cirrus,lochnagar.txt
  F:    Documentation/devicetree/bindings/sound/cirrus,lochnagar.txt
 -F:    Documentation/hwmon/lochnagar
 +F:    Documentation/hwmon/lochnagar.rst
  
  CISCO FCOE HBA DRIVER
  M:    Satish Kharat <[email protected]>
@@@ -4132,7 -4063,7 +4132,7 @@@ L:      [email protected] (mod
  W:    http://linux-cifs.samba.org/
  T:    git git://git.samba.org/sfrench/cifs-2.6.git
  S:    Supported
 -F:    Documentation/filesystems/cifs/
 +F:    Documentation/admin-guide/cifs/
  F:    fs/cifs/
  
  COMPACTPCI HOTPLUG CORE
@@@ -4192,7 -4123,7 +4192,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/
  
@@@ -4203,7 -4134,7 +4203,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
  
@@@ -4217,19 -4148,6 +4217,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/admin-guide/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]
@@@ -4319,14 -4237,6 +4319,14 @@@ S:    Supporte
  F:    drivers/cpuidle/cpuidle-exynos.c
  F:    arch/arm/mach-exynos/pm.c
  
 +CPUIDLE DRIVER - ARM PSCI
 +M:    Lorenzo Pieralisi <[email protected]>
 +M:    Sudeep Holla <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/cpuidle/cpuidle-psci.c
 +
  CPU IDLE TIME MANAGEMENT FRAMEWORK
  M:    "Rafael J. Wysocki" <[email protected]>
  M:    Daniel Lezcano <[email protected]>
@@@ -4345,12 -4255,6 +4345,12 @@@ S:    Maintaine
  F:    Documentation/filesystems/cramfs.txt
  F:    fs/cramfs/
  
 +CREATIVE SB0540
 +M:    Bastien Nocera <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/hid/hid-creative-sb0540.c
 +
  CRYPTO API
  M:    Herbert Xu <[email protected]>
  M:    "David S. Miller" <[email protected]>
@@@ -4516,7 -4420,7 +4516,7 @@@ F:      arch/powerpc/platforms/powernv/pci-c
  F:    drivers/misc/cxl/
  F:    include/misc/cxl*
  F:    include/uapi/misc/cxl.h
 -F:    Documentation/powerpc/cxl.txt
 +F:    Documentation/powerpc/cxl.rst
  F:    Documentation/ABI/testing/sysfs-class-cxl
  
  CXLFLASH (IBM Coherent Accelerator Processor Interface CAPI Flash) SCSI DRIVER
@@@ -4527,7 -4431,7 +4527,7 @@@ L:      [email protected]
  S:    Supported
  F:    drivers/scsi/cxlflash/
  F:    include/uapi/scsi/cxlflash_ioctl.h
 -F:    Documentation/powerpc/cxlflash.txt
 +F:    Documentation/powerpc/cxlflash.rst
  
  CYBERPRO FB DRIVER
  M:    Russell King <[email protected]>
@@@ -4703,7 -4607,7 +4703,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]
@@@ -4803,7 -4700,7 +4803,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*
@@@ -4923,7 -4820,7 +4923,7 @@@ S:      Maintaine
  W:    http://plugable.com/category/projects/udlfb/
  F:    drivers/video/fbdev/udlfb.c
  F:    include/video/udlfb.h
 -F:    Documentation/fb/udlfb.txt
 +F:    Documentation/fb/udlfb.rst
  
  DISTRIBUTED LOCK MANAGER (DLM)
  M:    Christine Caulfield <[email protected]>
@@@ -4994,9 -4891,7 +4994,9 @@@ M:      Jonathan Corbet <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/
 +F:    scripts/documentation-file-ref-check
  F:    scripts/kernel-doc
 +F:    scripts/sphinx-pre-install
  X:    Documentation/ABI/
  X:    Documentation/firmware-guide/acpi/
  X:    Documentation/devicetree/
  S:    Maintained
  F:    Documentation/translations/it_IT
  
 +DOCUMENTATION SCRIPTS
 +M:    Mauro Carvalho Chehab <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    scripts/documentation-file-ref-check
 +F:    scripts/sphinx-pre-install
 +F:    Documentation/sphinx/parse-headers.pl
 +
  DONGWOON DW9714 LENS VOICE COIL DRIVER
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/staging/fsl-dpaa2/ethsw
  
 -DPAA2 PTP CLOCK DRIVER
 -M:    Yangbo Lu <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp*
 -F:    drivers/net/ethernet/freescale/dpaa2/dprtc*
 -
  DPT_I2O SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <[email protected]>
  L:    [email protected]
@@@ -5084,7 -4978,7 +5084,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]>
@@@ -5152,24 -5046,17 +5152,24 @@@ S:   Maintaine
  F:    drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
  F:    Documentation/devicetree/bindings/display/panel/feiyang,fy07024di26a30d.txt
  
 +DRM DRIVER FOR GRAIN MEDIA GM12U320 PROJECTORS
 +M:    Hans de Goede <[email protected]>
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +S:    Maintained
 +F:    drivers/gpu/drm/tiny/gm12u320.c
 +
  DRM DRIVER FOR ILITEK ILI9225 PANELS
  M:    David Lechner <[email protected]>
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
 -F:    drivers/gpu/drm/tinydrm/ili9225.c
 +F:    drivers/gpu/drm/tiny/ili9225.c
  F:    Documentation/devicetree/bindings/display/ilitek,ili9225.txt
  
  DRM DRIVER FOR HX8357D PANELS
  M:    Eric Anholt <[email protected]>
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
 -F:    drivers/gpu/drm/tinydrm/hx8357d.c
 +F:    drivers/gpu/drm/tiny/hx8357d.c
  F:    Documentation/devicetree/bindings/display/himax,hx8357d.txt
  
  DRM DRIVER FOR INTEL I810 VIDEO CARDS
@@@ -5189,9 -5076,8 +5189,9 @@@ F:      drivers/gpu/drm/mgag200
  
  DRM DRIVER FOR MI0283QT
  M:    Noralf Trønnes <[email protected]>
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
 -F:    drivers/gpu/drm/tinydrm/mi0283qt.c
 +F:    drivers/gpu/drm/tiny/mi0283qt.c
  F:    Documentation/devicetree/bindings/display/multi-inno,mi0283qt.txt
  
  DRM DRIVER FOR MSM ADRENO GPU
@@@ -5223,9 -5109,8 +5223,9 @@@ F:      Documentation/devicetree/bindings/di
  
  DRM DRIVER FOR PERVASIVE DISPLAYS REPAPER PANELS
  M:    Noralf Trønnes <[email protected]>
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
 -F:    drivers/gpu/drm/tinydrm/repaper.c
 +F:    drivers/gpu/drm/tiny/repaper.c
  F:    Documentation/devicetree/bindings/display/repaper.txt
  
  DRM DRIVER FOR QEMU'S CIRRUS DEVICE
@@@ -5247,12 -5132,6 +5247,12 @@@ S:    Maintaine
  F:    drivers/gpu/drm/qxl/
  F:    include/uapi/drm/qxl_drm.h
  
 +DRM DRIVER FOR RAYDIUM RM67191 PANELS
 +M:    Robert Chiras <[email protected]>
 +S:    Maintained
 +F:    drivers/gpu/drm/panel/panel-raydium-rm67191.c
 +F:    Documentation/devicetree/bindings/display/panel/raydium,rm67191.txt
 +
  DRM DRIVER FOR RAGE 128 VIDEO CARDS
  S:    Orphan / Obsolete
  F:    drivers/gpu/drm/r128/
@@@ -5260,7 -5139,6 +5260,7 @@@ F:      include/uapi/drm/r128_drm.
  
  DRM DRIVER FOR ROCKTECH JH057N00900 PANELS
  M:    Guido Günther <[email protected]>
 +R:    Purism Kernel Team <[email protected]>
  S:    Maintained
  F:    drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
  F:    Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
@@@ -5283,25 -5161,16 +5283,25 @@@ F:   Documentation/devicetree/bindings/di
  
  DRM DRIVER FOR SITRONIX ST7586 PANELS
  M:    David Lechner <[email protected]>
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
 -F:    drivers/gpu/drm/tinydrm/st7586.c
 +F:    drivers/gpu/drm/tiny/st7586.c
  F:    Documentation/devicetree/bindings/display/sitronix,st7586.txt
  
  DRM DRIVER FOR SITRONIX ST7735R PANELS
  M:    David Lechner <[email protected]>
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
 -F:    drivers/gpu/drm/tinydrm/st7735r.c
 +F:    drivers/gpu/drm/tiny/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/
@@@ -5311,7 -5180,7 +5311,7 @@@ M:      Linus Walleij <linus.walleij@linaro.
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  S:    Maintained
  F:    drivers/gpu/drm/panel/panel-tpo-tpg110.c
 -F:    Documentation/devicetree/bindings/display/panel/tpo,tpg110.txt
 +F:    Documentation/devicetree/bindings/display/panel/tpo,tpg110.yaml
  
  DRM DRIVER FOR USB DISPLAYLINK VIDEO ADAPTERS
  M:    Dave Airlie <[email protected]>
@@@ -5366,7 -5235,7 +5366,7 @@@ F:      include/linux/vga
  
  DRM DRIVERS AND MISC GPU PATCHES
  M:    Maarten Lankhorst <[email protected]>
 -M:    Maxime Ripard <m[email protected]>
 +M:    Maxime Ripard <m[email protected]>
  M:    Sean Paul <[email protected]>
  W:    https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html
  S:    Maintained
@@@ -5379,7 -5248,7 +5379,7 @@@ F:      include/uapi/drm/drm
  F:    include/linux/vga*
  
  DRM DRIVERS FOR ALLWINNER A10
 -M:    Maxime Ripard  <[email protected]>
 +M:    Maxime Ripard <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/gpu/drm/sun4i/
  W:    http://linux-meson.com/
  S:    Supported
  F:    drivers/gpu/drm/meson/
 -F:    Documentation/devicetree/bindings/display/amlogic,meson-vpu.txt
 -F:    Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.txt
 +F:    Documentation/devicetree/bindings/display/amlogic,meson-vpu.yaml
 +F:    Documentation/devicetree/bindings/display/amlogic,meson-dw-hdmi.yaml
  F:    Documentation/gpu/meson.rst
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DRM DRIVERS FOR ATMEL HLCDC
 +M:    Sam Ravnborg <[email protected]>
  M:    Boris Brezillon <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -5409,10 -5277,7 +5409,10 @@@ T:    git git://anongit.freedesktop.org/dr
  
  DRM DRIVERS FOR BRIDGE CHIPS
  M:    Andrzej Hajda <[email protected]>
 +M:    Neil Armstrong <[email protected]>
  R:    Laurent Pinchart <[email protected]>
 +R:    Jonas Karlman <[email protected]>
 +R:    Jernej Skrabec <[email protected]>
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/bridge/
@@@ -5591,7 -5456,6 +5591,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
@@@ -5600,6 -5464,14 +5600,6 @@@ F:     drivers/gpu/drm/panel
  F:    include/drm/drm_panel.h
  F:    Documentation/devicetree/bindings/display/panel/
  
 -DRM TINYDRM DRIVERS
 -M:    Noralf Trønnes <[email protected]>
 -W:    https://github.com/notro/tinydrm/wiki/Development
 -T:    git git://anongit.freedesktop.org/drm/drm-misc
 -S:    Maintained
 -F:    drivers/gpu/drm/tinydrm/
 -F:    include/drm/tinydrm/
 -
  DRM DRIVERS FOR XEN
  M:    Oleksandr Andrushchenko <[email protected]>
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -5612,6 -5484,7 +5612,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]
@@@ -5625,6 -5498,12 +5625,6 @@@ T:     git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/radio/dsbr100.c
  
 -DSCC4 DRIVER
 -M:    Francois Romieu <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/net/wan/dscc4.c
 -
  DT3155 MEDIA DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -5752,8 -5631,7 +5752,8 @@@ F:      include/linux/dynamic_debug.
  DYNAMIC INTERRUPT MODERATION
  M:    Tal Gilboa <[email protected]>
  S:    Maintained
 -F:    include/linux/net_dim.h
 +F:    include/linux/dim.h
 +F:    lib/dim/
  
  DZ DECSTATION DZ11 SERIAL DRIVER
  M:    "Maciej W. Rozycki" <[email protected]>
  S:    Maintained
  F:    drivers/edac/amd64_edac*
  
 +EDAC-ARMADA
 +M:    Jan Luebbe <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/edac/armada_xp_*
 +
  EDAC-AST2500
  M:    Stefan Schaeckeler <[email protected]>
  S:    Supported
  F:    drivers/edac/aspeed_edac.c
  F:    Documentation/devicetree/bindings/edac/aspeed-sdram-edac.txt
  
 +EDAC-BLUEFIELD
 +M:    Shravan Kumar Ramani <[email protected]>
 +S:    Supported
 +F:    drivers/edac/bluefield_edac.c
 +
  EDAC-CALXEDA
  M:    Robert Richter <[email protected]>
  L:    [email protected]
@@@ -5857,11 -5724,10 +5857,11 @@@ F:   drivers/edac/thunderx_edac
  EDAC-CORE
  M:    Borislav Petkov <[email protected]>
  M:    Mauro Carvalho Chehab <[email protected]>
 +M:    Tony Luck <[email protected]>
  R:    James Morse <[email protected]>
 +R:    Robert Richter <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git for-next
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac.git linux_next
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras.git edac-for-next
  S:    Supported
  F:    Documentation/admin-guide/ras.rst
  F:    Documentation/driver-api/edac.rst
@@@ -6111,16 -5977,6 +6111,16 @@@ T:    git git://git.kernel.org/pub/scm/lin
  F:    drivers/video/fbdev/s1d13xxxfb.c
  F:    include/video/s1d13xxxfb.h
  
 +EROFS FILE SYSTEM
 +M:    Gao Xiang <[email protected]>
 +M:    Chao Yu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
 +F:    Documentation/filesystems/erofs.txt
 +F:    fs/erofs/
 +F:    include/trace/events/erofs.h
 +
  ERRSEQ ERROR TRACKING INFRASTRUCTURE
  M:    Jeff Layton <[email protected]>
  S:    Maintained
@@@ -6148,8 -6004,7 +6148,8 @@@ M:      Florian Fainelli <[email protected]
  M:    Heiner Kallweit <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/ABI/testing/sysfs-bus-mdio
 +F:    Documentation/ABI/testing/sysfs-class-net-phydev
 +F:    Documentation/devicetree/bindings/net/ethernet-phy.yaml
  F:    Documentation/devicetree/bindings/net/mdio*
  F:    Documentation/networking/phy.rst
  F:    drivers/net/phy/
@@@ -6165,11 -6020,6 +6165,11 @@@ F:    include/trace/events/mdio.
  F:    include/uapi/linux/mdio.h
  F:    include/uapi/linux/mii.h
  
 +EXFAT FILE SYSTEM
 +M:    Valdis Kletnieks <[email protected]>
 +S:    Maintained
 +F:    drivers/staging/exfat/
 +
  EXT2 FILE SYSTEM
  M:    Jan Kara <[email protected]>
  L:    [email protected]
@@@ -6200,7 -6050,7 +6200,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
@@@ -6356,14 -6206,12 +6356,14 @@@ S:   Maintaine
  F:    drivers/hwmon/f75375s.c
  F:    include/linux/f75375s.h
  
 -FIREWIRE AUDIO DRIVERS
 +FIREWIRE AUDIO DRIVERS and IEC 61883-1/6 PACKET STREAMING ENGINE
  M:    Clemens Ladisch <[email protected]>
 +M:    Takashi Sakamoto <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
  S:    Maintained
  F:    sound/firewire/
 +F:    include/uapi/sound/firewire.h
  
  FIREWIRE MEDIA DRIVERS (firedtv)
  M:    Stefan Richter <[email protected]>
@@@ -6407,25 -6255,26 +6407,25 @@@ M:   Philip Kelleher <[email protected]
  S:    Maintained
  F:    drivers/block/rsxx/
  
 +FLEXTIMER FTM-QUADDEC DRIVER
 +M:    Patrick Havelange <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-counter-ftm-quaddec
 +F:    Documentation/devicetree/bindings/counter/ftm-quaddec.txt
 +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
 +M:    Denis Efremov <[email protected]>
 +S:    Odd Fixes
 +L:    [email protected]
  F:    drivers/block/floppy.c
  
 -FMC SUBSYSTEM
 -M:    Alessandro Rubini <[email protected]>
 -W:    http://www.ohwr.org/projects/fmc-bus
 -S:    Supported
 -F:    drivers/fmc/
 -F:    include/linux/fmc*.h
 -F:    include/linux/ipmi-fru.h
 -K:    fmc_d.*register
 -
  FPGA MANAGER FRAMEWORK
  M:    Moritz Fischer <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/atull/linux-fpga.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mdf/linux-fpga.git
  Q:    http://patchwork.kernel.org/project/linux-fpga/list/
  F:    Documentation/fpga/
  F:    Documentation/driver-api/fpga/
@@@ -6438,7 -6287,7 +6438,7 @@@ FPGA DFL DRIVER
  M:    Wu Hao <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/fpga/dfl.txt
 +F:    Documentation/fpga/dfl.rst
  F:    include/uapi/linux/fpga-dfl.h
  F:    drivers/fpga/dfl*
  
@@@ -6458,7 -6307,7 +6458,7 @@@ FRAMEBUFFER LAYE
  M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -T:    git git://github.com/bzolnier/linux.git
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
  Q:    http://patchwork.kernel.org/project/linux-fbdev/list/
  S:    Maintained
  F:    Documentation/fb/
@@@ -6520,17 -6369,8 +6520,17 @@@ M:    Frank Li <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/perf/fsl_imx8_ddr_perf.c
 +F:    Documentation/admin-guide/perf/imx-ddr.rst
  F:    Documentation/devicetree/bindings/perf/fsl-imx-ddr.txt
  
 +FREESCALE IMX I2C DRIVER
 +M:    Oleksij Rempel <[email protected]>
 +R:    Pengutronix Kernel Team <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-imx.c
 +F:    Documentation/devicetree/bindings/i2c/i2c-imx.txt
 +
  FREESCALE IMX LPI2C DRIVER
  M:    Dong Aisheng <[email protected]>
  L:    [email protected]
@@@ -6574,8 -6414,6 +6574,8 @@@ FREESCALE QORIQ PTP CLOCK DRIVE
  M:    Yangbo Lu <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp*
 +F:    drivers/net/ethernet/freescale/dpaa2/dprtc*
  F:    drivers/net/ethernet/freescale/enetc/enetc_ptp.c
  F:    drivers/ptp/ptp_qoriq.c
  F:    drivers/ptp/ptp_qoriq_debugfs.c
@@@ -6621,7 -6459,6 +6621,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/
@@@ -6664,7 -6501,7 +6664,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
  
@@@ -6693,22 -6530,8 +6693,22 @@@ T:    git git://git.kernel.org/pub/scm/fs/
  S:    Supported
  F:    fs/crypto/
  F:    include/linux/fscrypt*.h
 +F:    include/uapi/linux/fscrypt.h
  F:    Documentation/filesystems/fscrypt.rst
  
 +FSI SUBSYSTEM
 +M:    Jeremy Kerr <[email protected]>
 +M:    Joel Stanley <[email protected]>
 +R:    Alistar Popple <[email protected]>
 +R:    Eddie James <[email protected]>
 +L:    [email protected]
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joel/fsi.git
 +Q:    http://patchwork.ozlabs.org/project/linux-fsi/list/
 +S:    Supported
 +F:    drivers/fsi/
 +F:    include/linux/fsi*.h
 +F:    include/trace/events/fsi*.h
 +
  FSI-ATTACHED I2C DRIVER
  M:    Eddie James <[email protected]>
  L:    [email protected]
@@@ -6725,18 -6548,6 +6725,18 @@@ S:    Maintaine
  F:    fs/notify/
  F:    include/linux/fsnotify*.h
  
 +FSVERITY: READ-ONLY FILE-BASED AUTHENTICITY PROTECTION
 +M:    Eric Biggers <[email protected]>
 +M:    Theodore Y. Ts'o <[email protected]>
 +L:    [email protected]
 +Q:    https://patchwork.kernel.org/project/linux-fscrypt/list/
 +T:    git git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt.git fsverity
 +S:    Supported
 +F:    fs/verity/
 +F:    include/linux/fsverity.h
 +F:    include/uapi/linux/fsverity.h
 +F:    Documentation/filesystems/fsverity.rst
 +
  FUJITSU LAPTOP EXTRAS
  M:    Jonathan Woithe <[email protected]>
  L:    [email protected]
@@@ -6791,7 -6602,7 +6791,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]>
@@@ -6827,13 -6638,6 +6827,13 @@@ W:    https://linuxtv.or
  S:    Maintained
  F:    drivers/media/radio/radio-gemtek*
  
 +GENERIC ARCHITECTURE TOPOLOGY
 +M:    Sudeep Holla <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/base/arch_topology.c
 +F:    include/linux/arch_topology.h
 +
  GENERIC GPIO I2C DRIVER
  M:    Wolfram Sang <[email protected]>
  S:    Supported
@@@ -6846,7 -6650,7 +6846,7 @@@ L:      [email protected]
  S:    Supported
  F:    drivers/i2c/muxes/i2c-mux-gpio.c
  F:    include/linux/platform_data/i2c-mux-gpio.h
 -F:    Documentation/i2c/muxes/i2c-mux-gpio
 +F:    Documentation/i2c/muxes/i2c-mux-gpio.rst
  
  GENERIC HDLC (WAN) DRIVERS
  M:    Krzysztof Halasa <[email protected]>
@@@ -6937,6 -6741,15 +6937,6 @@@ F:     Documentation/filesystems/gfs2*.tx
  F:    fs/gfs2/
  F:    include/uapi/linux/gfs2_ondisk.h
  
 -GIGASET ISDN DRIVERS
 -M:    Paul Bolle <[email protected]>
 -L:    [email protected]
 -W:    http://gigaset307x.sourceforge.net/
 -S:    Odd Fixes
 -F:    Documentation/isdn/README.gigaset
 -F:    drivers/isdn/gigaset/
 -F:    include/uapi/linux/gigaset_dev.h
 -
  GNSS SUBSYSTEM
  M:    Johan Hovold <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/johan/gnss.git
  S:    Maintained
  F:    drivers/input/touchscreen/goodix.c
  
 +GOOGLE ETHERNET DRIVERS
 +M:    Catherine Sullivan <[email protected]>
 +R:    Sagi Shahar <[email protected]>
 +R:    Jon Olson <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/networking/device_drivers/google/gve.rst
 +F:    drivers/net/ethernet/google
 +
  GPD POCKET FAN DRIVER
  M:    Hans de Goede <[email protected]>
  L:    [email protected]
@@@ -7003,7 -6807,7 +7003,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/
@@@ -7090,9 -6894,6 +7090,9 @@@ M:      Alex Elder <[email protected]
  M:    Greg Kroah-Hartman <[email protected]>
  S:    Maintained
  F:    drivers/staging/greybus/
 +F:    drivers/greybus/
 +F:    include/linux/greybus.h
 +F:    include/linux/greybus/
  L:    [email protected] (moderated for non-subscribers)
  
  GREYBUS UART PROTOCOLS DRIVERS
@@@ -7227,7 -7028,7 +7227,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
  
@@@ -7263,7 -7064,7 +7263,7 @@@ F:      drivers/media/usb/hdpvr
  HEWLETT PACKARD ENTERPRISE ILO NMI WATCHDOG DRIVER
  M:    Jerry Hoemann <[email protected]>
  S:    Supported
 -F:    Documentation/watchdog/hpwdt.txt
 +F:    Documentation/watchdog/hpwdt.rst
  F:    drivers/watchdog/hpwdt.c
  
  HEWLETT-PACKARD SMART ARRAY RAID DRIVER (hpsa)
@@@ -7401,7 -7202,7 +7401,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]>
@@@ -7418,17 -7219,6 +7418,17 @@@ S:    Supporte
  F:    drivers/scsi/hisi_sas/
  F:    Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
  
 +HISILICON QM AND ZIP Controller DRIVER
 +M:    Zhou Wang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/crypto/hisilicon/qm.c
 +F:    drivers/crypto/hisilicon/qm.h
 +F:    drivers/crypto/hisilicon/sgl.c
 +F:    drivers/crypto/hisilicon/sgl.h
 +F:    drivers/crypto/hisilicon/zip/
 +F:    Documentation/ABI/testing/debugfs-hisi-zip
 +
  HMM - Heterogeneous Memory Management
  M:    Jérôme Glisse <[email protected]>
  L:    [email protected]
@@@ -7457,7 -7247,7 +7457,7 @@@ F:      drivers/net/ethernet/hp/hp100.
  HPET: High Precision Event Timers driver
  M:    Clemens Ladisch <[email protected]>
  S:    Maintained
 -F:    Documentation/timers/hpet.txt
 +F:    Documentation/timers/hpet.rst
  F:    drivers/char/hpet.c
  F:    include/linux/hpet.h
  F:    include/uapi/linux/hpet.h
@@@ -7572,28 -7362,18 +7572,28 @@@ F:   drivers/hid/hid-hyperv.
  F:    drivers/hv/
  F:    drivers/input/serio/hyperv-keyboard.c
  F:    drivers/pci/controller/pci-hyperv.c
 +F:    drivers/pci/controller/pci-hyperv-intf.c
  F:    drivers/net/hyperv/
  F:    drivers/scsi/storvsc_drv.c
  F:    drivers/uio/uio_hv_generic.c
  F:    drivers/video/fbdev/hyperv_fb.c
 -F:    drivers/iommu/hyperv_iommu.c
 +F:    drivers/iommu/hyperv-iommu.c
  F:    net/vmw_vsock/hyperv_transport.c
  F:    include/clocksource/hyperv_timer.h
  F:    include/linux/hyperv.h
  F:    include/uapi/linux/hyperv.h
 +F:    include/asm-generic/mshyperv.h
  F:    tools/hv/
  F:    Documentation/ABI/stable/sysfs-bus-vmbus
  
 +HYPERBUS SUPPORT
 +M:    Vignesh Raghavendra <[email protected]>
 +S:    Supported
 +F:    drivers/mtd/hyperbus/
 +F:    include/linux/mtd/hyperbus.h
 +F:    Documentation/devicetree/bindings/mtd/cypress,hyperflash.txt
 +F:    Documentation/devicetree/bindings/mtd/ti,am654-hbmc.txt
 +
  HYPERVISOR VIRTUAL CONSOLE DRIVER
  L:    [email protected]
  S:    Odd Fixes
@@@ -7610,14 -7390,14 +7610,14 @@@ I2C CONTROLLER DRIVER FOR NVIDIA GP
  M:    Ajay Gupta <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/i2c/busses/i2c-nvidia-gpu
 +F:    Documentation/i2c/busses/i2c-nvidia-gpu.rst
  F:    drivers/i2c/busses/i2c-nvidia-gpu.c
  
  I2C MUXES
  M:    Peter Rosin <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/i2c/i2c-topology
 +F:    Documentation/i2c/i2c-topology.rst
  F:    Documentation/i2c/muxes/
  F:    Documentation/devicetree/bindings/i2c/i2c-mux*
  F:    Documentation/devicetree/bindings/i2c/i2c-arb*
@@@ -7630,15 -7410,15 +7630,15 @@@ I2C MV64XXX MARVELL AND ALLWINNER DRIVE
  M:    Gregory CLEMENT <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
 +F:    Documentation/devicetree/bindings/i2c/marvell,mv64xxx-i2c.yaml
  F:    drivers/i2c/busses/i2c-mv64xxx.c
  
  I2C OVER PARALLEL PORT
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/i2c/busses/i2c-parport
 -F:    Documentation/i2c/busses/i2c-parport-light
 +F:    Documentation/i2c/busses/i2c-parport.rst
 +F:    Documentation/i2c/busses/i2c-parport-light.rst
  F:    drivers/i2c/busses/i2c-parport.c
  F:    drivers/i2c/busses/i2c-parport-light.c
  
@@@ -7672,7 -7452,7 +7672,7 @@@ I2C-TAOS-EVM DRIVE
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/i2c/busses/i2c-taos-evm
 +F:    Documentation/i2c/busses/i2c-taos-evm.rst
  F:    drivers/i2c/busses/i2c-taos-evm.c
  
  I2C-TINY-USB DRIVER
@@@ -7686,19 -7466,19 +7686,19 @@@ I2C/SMBUS CONTROLLER DRIVERS FOR P
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/i2c/busses/i2c-ali1535
 -F:    Documentation/i2c/busses/i2c-ali1563
 -F:    Documentation/i2c/busses/i2c-ali15x3
 -F:    Documentation/i2c/busses/i2c-amd756
 -F:    Documentation/i2c/busses/i2c-amd8111
 -F:    Documentation/i2c/busses/i2c-i801
 -F:    Documentation/i2c/busses/i2c-nforce2
 -F:    Documentation/i2c/busses/i2c-piix4
 -F:    Documentation/i2c/busses/i2c-sis5595
 -F:    Documentation/i2c/busses/i2c-sis630
 -F:    Documentation/i2c/busses/i2c-sis96x
 -F:    Documentation/i2c/busses/i2c-via
 -F:    Documentation/i2c/busses/i2c-viapro
 +F:    Documentation/i2c/busses/i2c-ali1535.rst
 +F:    Documentation/i2c/busses/i2c-ali1563.rst
 +F:    Documentation/i2c/busses/i2c-ali15x3.rst
 +F:    Documentation/i2c/busses/i2c-amd756.rst
 +F:    Documentation/i2c/busses/i2c-amd8111.rst
 +F:    Documentation/i2c/busses/i2c-i801.rst
 +F:    Documentation/i2c/busses/i2c-nforce2.rst
 +F:    Documentation/i2c/busses/i2c-piix4.rst
 +F:    Documentation/i2c/busses/i2c-sis5595.rst
 +F:    Documentation/i2c/busses/i2c-sis630.rst
 +F:    Documentation/i2c/busses/i2c-sis96x.rst
 +F:    Documentation/i2c/busses/i2c-via.rst
 +F:    Documentation/i2c/busses/i2c-viapro.rst
  F:    drivers/i2c/busses/i2c-ali1535.c
  F:    drivers/i2c/busses/i2c-ali1563.c
  F:    drivers/i2c/busses/i2c-ali15x3.c
@@@ -7727,7 -7507,7 +7727,7 @@@ M:      Seth Heasley <[email protected]
  M:    Neil Horman <[email protected]>
  L:    [email protected]
  F:    drivers/i2c/busses/i2c-ismt.c
 -F:    Documentation/i2c/busses/i2c-ismt
 +F:    Documentation/i2c/busses/i2c-ismt.rst
  
  I2C/SMBUS STUB DRIVER
  M:    Jean Delvare <[email protected]>
@@@ -7783,7 -7563,7 +7783,7 @@@ F:      drivers/crypto/nx/nx-aes
  F:    drivers/crypto/nx/nx-sha*
  F:    drivers/crypto/nx/nx.*
  F:    drivers/crypto/nx/nx_csbcpb.h
 -F:    drivers/crypto/nx/nx_debugfs.h
 +F:    drivers/crypto/nx/nx_debugfs.c
  
  IBM Power Linux RAID adapter
  M:    Brian King <[email protected]>
@@@ -7873,12 -7653,6 +7873,12 @@@ S:    Maintaine
  F:    drivers/mfd/lpc_ich.c
  F:    drivers/gpio/gpio-ich.c
  
 +ICY I2C DRIVER
 +M:    Max Staudt <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-icy.c
 +
  IDE SUBSYSTEM
  M:    "David S. Miller" <[email protected]>
  L:    [email protected]
@@@ -7893,7 -7667,7 +7893,7 @@@ IDE/ATAPI DRIVER
  M:    Borislav Petkov <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/cdrom/ide-cd
 +F:    Documentation/cdrom/ide-cd.rst
  F:    drivers/ide/ide-cd*
  
  IDEAPAD LAPTOP EXTRAS DRIVER
@@@ -8009,7 -7783,7 +8009,7 @@@ S:      Maintaine
  F:    drivers/usb/atm/ueagle-atm.c
  
  IMGTEC ASCII LCD DRIVER
 -M:    Paul Burton <paul[email protected]>
 +M:    Paul Burton <paul[email protected]>
  S:    Maintained
  F:    Documentation/devicetree/bindings/auxdisplay/img-ascii-lcd.txt
  F:    drivers/auxdisplay/img-ascii-lcd.c
@@@ -8056,12 -7830,6 +8056,12 @@@ W:    http://industrypack.sourceforge.ne
  S:    Maintained
  F:    drivers/ipack/
  
 +INFINEON DPS310 Driver
 +M:    Eddie James <[email protected]>
 +L:    [email protected]
 +F:    drivers/iio/pressure/dps310.c
 +S:    Maintained
 +
  INFINIBAND SUBSYSTEM
  M:    Doug Ledford <[email protected]>
  M:    Jason Gunthorpe <[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]>
@@@ -8173,7 -7914,6 +8173,7 @@@ S:      Maintaine
  F:    drivers/video/fbdev/i810/
  
  INTEL ASoC DRIVERS
 +M:    Cezary Rojewski <[email protected]>
  M:    Pierre-Louis Bossart <[email protected]>
  M:    Liam Girdwood <[email protected]>
  M:    Jie Yang <[email protected]>
@@@ -8195,13 -7935,6 +8195,13 @@@ T:    git git://git.code.sf.net/p/intel-sa
  S:    Supported
  F:    drivers/scsi/isci/
  
 +INTEL CPU family model numbers
 +M:    Tony Luck <[email protected]>
 +M:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    arch/x86/include/asm/intel-family.h
 +
  INTEL DRM DRIVERS (excluding Poulsbo, Moorestown and derivative chipsets)
  M:    Jani Nikula <[email protected]>
  M:    Joonas Lahtinen <[email protected]>
@@@ -8247,7 -7980,7 +8247,7 @@@ INTEL FRAMEBUFFER DRIVER (excluding 81
  M:    Maik Broemme <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/fb/intelfb.txt
 +F:    Documentation/fb/intelfb.rst
  F:    drivers/video/fbdev/intelfb/
  
  INTEL GPIO DRIVERS
@@@ -8306,14 -8039,11 +8306,14 @@@ F:   drivers/hid/intel-ish-hid
  
  INTEL IOMMU (VT-d)
  M:    David Woodhouse <[email protected]>
 +M:    Lu Baolu <[email protected]>
  L:    [email protected]
 -T:    git git://git.infradead.org/iommu-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
  S:    Supported
 -F:    drivers/iommu/intel-iommu.c
 +F:    drivers/iommu/dmar.c
 +F:    drivers/iommu/intel*.[ch]
  F:    include/linux/intel-iommu.h
 +F:    include/linux/intel-svm.h
  
  INTEL IOP-ADMA DMA DRIVER
  R:    Dan Williams <[email protected]>
@@@ -8361,7 -8091,7 +8361,7 @@@ F:      include/uapi/linux/mei.
  F:    include/linux/mei_cl_bus.h
  F:    drivers/misc/mei/*
  F:    drivers/watchdog/mei_wdt.c
 -F:    Documentation/misc-devices/mei/*
 +F:    Documentation/driver-api/mei/*
  F:    samples/mei/*
  
  INTEL MENLOW THERMAL DRIVER
@@@ -8410,7 -8140,7 +8410,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
@@@ -8441,25 -8171,6 +8441,25 @@@ S:    Supporte
  F:    drivers/infiniband/hw/i40iw/
  F:    include/uapi/rdma/i40iw-abi.h
  
 +INTEL SPEED SELECT TECHNOLOGY
 +M:    Srinivas Pandruvada <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/x86/intel_speed_select_if/
 +F:    tools/power/x86/intel-speed-select/
 +F:    include/uapi/linux/isst_if.h
 +
 +INTEL STRATIX10 FIRMWARE DRIVERS
 +M:    Richard Gong <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/firmware/stratix10-rsu.c
 +F:    drivers/firmware/stratix10-svc.c
 +F:    include/linux/firmware/intel/stratix10-smc.h
 +F:    include/linux/firmware/intel/stratix10-svc-client.h
 +F:    Documentation/ABI/testing/sysfs-devices-platform-stratix10-rsu
 +F:    Documentation/devicetree/bindings/firmware/intel,stratix10-svc.txt
 +
  INTEL TELEMETRY DRIVER
  M:    Rajneesh Bhardwaj <[email protected]>
  M:    "David E. Box" <[email protected]>
@@@ -8497,7 -8208,7 +8497,7 @@@ M:      [email protected]
  L:    [email protected] (subscribers-only)
  S:    Supported
  W:    http://linuxwimax.org
 -F:    Documentation/wimax/README.i2400m
 +F:    Documentation/admin-guide/wimax/i2400m.rst
  F:    drivers/net/wimax/i2400m/
  F:    include/uapi/linux/wimax/i2400m.h
  
@@@ -8511,7 -8222,6 +8511,7 @@@ M:      Alexander Shishkin <alexander.shishk
  S:    Supported
  F:    Documentation/trace/intel_th.rst
  F:    drivers/hwtracing/intel_th/
 +F:    include/linux/intel_th.h
  
  INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
  M:    Ning Sun <[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
  
 -INTEL-MID GPIO DRIVER
 -M:    David Cohen <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/gpio/gpio-intel-mid.c
 -
  INTERCONNECT API
  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/
  S:    Maintained
  F:    drivers/net/ethernet/sgi/ioc3-eth.c
  
 -IOC3 SERIAL DRIVER
 -M:    Pat Gefre <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/tty/serial/ioc3_serial.c
 -
  IOMAP FILESYSTEM LIBRARY
  M:    Christoph Hellwig <[email protected]>
  M:    Darrick J. Wong <[email protected]>
@@@ -8556,7 -8278,7 +8556,7 @@@ L:      [email protected]
  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
@@@ -8572,15 -8294,19 +8572,15 @@@ F:   include/linux/iova.
  
  IO_URING
  M:    Jens Axboe <[email protected]>
 -L:    [email protected]
 -L:    [email protected]
 +L:    [email protected]
  T:    git git://git.kernel.dk/linux-block
  T:    git git://git.kernel.dk/liburing
  S:    Maintained
  F:    fs/io_uring.c
 +F:    fs/io-wq.c
 +F:    fs/io-wq.h
  F:    include/uapi/linux/io_uring.h
  
 -IP MASQUERADING
 -M:    Juanjo Ciarlante <[email protected]>
 -S:    Maintained
 -F:    net/ipv4/netfilter/ipt_MASQUERADE.c
 -
  IPMI SUBSYSTEM
  M:    Corey Minyard <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -8625,7 -8351,7 +8625,7 @@@ S:      Obsolet
  F:    include/uapi/linux/ipx.h
  
  IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
 -M:    Marc Zyngier <ma[email protected]>
 +M:    Marc Zyngier <ma[email protected]>
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
  F:    Documentation/IRQ-domain.txt
@@@ -8643,7 -8369,7 +8643,7 @@@ F:      kernel/irq
  IRQCHIP DRIVERS
  M:    Thomas Gleixner <[email protected]>
  M:    Jason Cooper <[email protected]>
 -M:    Marc Zyngier <ma[email protected]>
 +M:    Marc Zyngier <ma[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
@@@ -8653,7 -8379,7 +8653,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
  
@@@ -8668,7 -8394,7 +8668,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
  
@@@ -8706,26 -8432,18 +8706,26 @@@ S:   Supporte
  W:    http://www.linux-iscsi.org
  F:    drivers/infiniband/ulp/isert
  
 -ISDN SUBSYSTEM
 +ISDN/mISDN SUBSYSTEM
  M:    Karsten Keil <[email protected]>
  L:    [email protected] (subscribers-only)
  L:    [email protected]
  W:    http://www.isdn4linux.de
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/isdn-2.6.git
  S:    Maintained
 +F:    drivers/isdn/mISDN
 +F:    drivers/isdn/hardware
 +
 +ISDN/CAPI SUBSYSTEM
 +M:    Karsten Keil <[email protected]>
 +L:    [email protected] (subscribers-only)
 +L:    [email protected]
 +W:    http://www.isdn4linux.de
 +S:    Odd Fixes
  F:    Documentation/isdn/
 -F:    drivers/isdn/
 -F:    include/linux/isdn.h
 +F:    drivers/isdn/capi/
 +F:    drivers/staging/isdn/
 +F:    net/bluetooth/cmtp/
  F:    include/linux/isdn/
 -F:    include/uapi/linux/isdn.h
  F:    include/uapi/linux/isdn/
  
  IT87 HARDWARE MONITORING DRIVER
@@@ -8784,7 -8502,7 +8784,7 @@@ L:      [email protected]
  W:    http://jfs.sourceforge.net/
  T:    git git://github.com/kleikamp/linux-shaggy.git
  S:    Maintained
 -F:    Documentation/filesystems/jfs.txt
 +F:    Documentation/admin-guide/jfs.rst
  F:    fs/jfs/
  
  JME NETWORK DRIVER
@@@ -8866,7 -8584,7 +8866,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]>
@@@ -8929,17 -8647,6 +8929,17 @@@ S:    Maintaine
  F:    tools/testing/selftests/
  F:    Documentation/dev-tools/kselftest*
  
 +KERNEL UNIT TESTING FRAMEWORK (KUnit)
 +M:    Brendan Higgins <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +W:    https://google.github.io/kunit-docs/third_party/kernel/docs/
 +S:    Maintained
 +F:    Documentation/dev-tools/kunit/
 +F:    include/kunit/
 +F:    lib/kunit/
 +F:    tools/testing/kunit/
 +
  KERNEL USERMODE HELPER
  M:    Luis Chamberlain <[email protected]>
  L:    [email protected]
@@@ -8954,7 -8661,7 +8954,7 @@@ L:      [email protected]
  W:    http://www.linux-kvm.org
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
  S:    Supported
 -F:    Documentation/virtual/kvm/
 +F:    Documentation/virt/kvm/
  F:    include/trace/events/kvm.h
  F:    include/uapi/asm-generic/kvm*
  F:    include/uapi/linux/kvm*
@@@ -8965,11 -8672,19 +8965,11 @@@ F:   virt/kvm/
  F:    tools/kvm/
  F:    tools/testing/selftests/kvm/
  
 -KERNEL VIRTUAL MACHINE FOR AMD-V (KVM/amd)
 -M:    Joerg Roedel <[email protected]>
 -L:    [email protected]
 -W:    http://www.linux-kvm.org/
 -S:    Maintained
 -F:    arch/x86/include/asm/svm.h
 -F:    arch/x86/kvm/svm.c
 -
  KERNEL VIRTUAL MACHINE FOR ARM/ARM64 (KVM/arm, KVM/arm64)
 -M:    Marc Zyngier <ma[email protected]>
 +M:    Marc Zyngier <ma[email protected]>
  R:    James Morse <[email protected]>
 -R:    Julien Thierry <julien.thierry@arm.com>
 -R:    Suzuki K Pouloze <[email protected]>
 +R:    Julien Thierry <julien.thierry.kdev@gmail.com>
 +R:    Suzuki K Poulose <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git
@@@ -9007,7 -8722,7 +9007,7 @@@ M:      Christian Borntraeger <borntraeger@d
  M:    Janosch Frank <[email protected]>
  R:    David Hildenbrand <[email protected]>
  R:    Cornelia Huck <[email protected]>
 -L:    linux-s390@vger.kernel.org
 +L:    kvm@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git
  S:    Supported
@@@ -9016,17 -8731,10 +9016,17 @@@ 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]>
  M:    Radim Krčmář <[email protected]>
 +R:    Sean Christopherson <[email protected]>
 +R:    Vitaly Kuznetsov <[email protected]>
 +R:    Wanpeng Li <[email protected]>
 +R:    Jim Mattson <[email protected]>
 +R:    Joerg Roedel <[email protected]>
  L:    [email protected]
  W:    http://www.linux-kvm.org
  T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
@@@ -9034,12 -8742,8 +9034,12 @@@ S:    Supporte
  F:    arch/x86/kvm/
  F:    arch/x86/kvm/*/
  F:    arch/x86/include/uapi/asm/kvm*
 +F:    arch/x86/include/uapi/asm/vmx.h
 +F:    arch/x86/include/uapi/asm/svm.h
  F:    arch/x86/include/asm/kvm*
  F:    arch/x86/include/asm/pvclock-abi.h
 +F:    arch/x86/include/asm/svm.h
 +F:    arch/x86/include/asm/vmx.h
  F:    arch/x86/kernel/kvm.c
  F:    arch/x86/kernel/kvmclock.c
  
@@@ -9071,7 -8775,7 +9071,7 @@@ F:      security/keys/encrypted-keys
  
  KEYS-TRUSTED
  M:    James Bottomley <[email protected]>
 -M:      Jarkko Sakkinen <[email protected]>
 +M:    Jarkko Sakkinen <[email protected]>
  M:    Mimi Zohar <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -9079,11 -8783,10 +9079,11 @@@ S:   Supporte
  F:    Documentation/security/keys/trusted-encrypted.rst
  F:    include/keys/trusted-type.h
  F:    security/keys/trusted.c
 -F:    security/keys/trusted.h
 +F:    include/keys/trusted.h
  
  KEYS/KEYRINGS:
  M:    David Howells <[email protected]>
 +M:    Jarkko Sakkinen <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/security/keys/core.rst
@@@ -9097,7 -8800,6 +9097,7 @@@ F:      security/keys
  KGDB / KDB /debug_core
  M:    Jason Wessel <[email protected]>
  M:    Daniel Thompson <[email protected]>
 +R:    Douglas Anderson <[email protected]>
  W:    http://kgdb.wiki.kernel.org/
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb.git
@@@ -9140,12 -8842,12 +9140,12 @@@ F:   kernel/kprobes.
  KS0108 LCD CONTROLLER DRIVER
  M:    Miguel Ojeda Sandonis <[email protected]>
  S:    Maintained
 -F:    Documentation/auxdisplay/ks0108
 +F:    Documentation/admin-guide/auxdisplay/ks0108.rst
  F:    drivers/auxdisplay/ks0108.c
  F:    include/linux/ks0108.h
  
  L3MDEV
 -M:    David Ahern <dsa@cumulusnetworks.com>
 +M:    David Ahern <dsa[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    net/l3mdev
@@@ -9206,7 -8908,6 +9206,7 @@@ M:      Pavel Machek <[email protected]
  R:    Dan Murphy <[email protected]>
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds.git
  S:    Maintained
  F:    Documentation/devicetree/bindings/leds/
  F:    drivers/leds/
@@@ -9215,7 -8916,7 +9215,7 @@@ F:      include/linux/leds.
  LEGACY EEPROM DRIVER
  M:    Jean Delvare <[email protected]>
  S:    Maintained
 -F:    Documentation/misc-devices/eeprom
 +F:    Documentation/misc-devices/eeprom.rst
  F:    drivers/misc/eeprom/eeprom.c
  
  LEGO MINDSTORMS EV3
@@@ -9237,7 -8938,7 +9237,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
@@@ -9370,18 -9071,6 +9370,18 @@@ F:    include/linux/nd.
  F:    include/linux/libnvdimm.h
  F:    include/uapi/linux/ndctl.h
  
 +LICENSES and SPDX stuff
 +M:    Thomas Gleixner <[email protected]>
 +M:    Greg Kroah-Hartman <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx.git
 +F:    COPYING
 +F:    Documentation/process/license-rules.rst
 +F:    LICENSES/
 +F:    scripts/spdxcheck-test.sh
 +F:    scripts/spdxcheck.py
 +
  LIGHTNVM PLATFORM SUPPORT
  M:    Matias Bjorling <[email protected]>
  W:    http://github/OpenChannelSSD
@@@ -9488,7 -9177,7 +9488,7 @@@ F:      drivers/misc/lkdtm/
  
  LINUX KERNEL MEMORY CONSISTENCY MODEL (LKMM)
  M:    Alan Stern <[email protected]>
 -M:    Andrea Parri <andrea.parri@amarulasolutions.com>
 +M:    Andrea Parri <parri.andrea@gmail.com>
  M:    Will Deacon <[email protected]>
  M:    Peter Zijlstra <[email protected]>
  M:    Boqun Feng <[email protected]>
@@@ -9496,7 -9185,7 +9496,7 @@@ M:      Nicholas Piggin <[email protected]
  M:    David Howells <[email protected]>
  M:    Jade Alglave <[email protected]>
  M:    Luc Maranget <[email protected]>
 -M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@kernel.org>
  R:    Akira Yokosawa <[email protected]>
  R:    Daniel Lustig <[email protected]>
  L:    [email protected]
@@@ -9513,17 -9202,10 +9513,17 @@@ F:   Documentation/memory-barriers.tx
  LIS3LV02D ACCELEROMETER DRIVER
  M:    Eric Piel <[email protected]>
  S:    Maintained
 -F:    Documentation/misc-devices/lis3lv02d
 +F:    Documentation/misc-devices/lis3lv02d.rst
  F:    drivers/misc/lis3lv02d/
  F:    drivers/platform/x86/hp_accel.c
  
 +LIST KUNIT TEST
 +M:    David Gow <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    lib/list-test.c
 +
  LIVE PATCHING
  M:    Josh Poimboeuf <[email protected]>
  M:    Jiri Kosina <[email protected]>
@@@ -9625,7 -9307,7 +9625,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)
@@@ -9737,7 -9419,7 +9737,7 @@@ F:      Documentation/networking/mac80211-in
  F:    include/net/mac80211.h
  F:    net/mac80211/
  F:    drivers/net/wireless/mac80211_hwsim.[ch]
 -F:    Documentation/networking/mac80211_hwsim/README
 +F:    Documentation/networking/mac80211_hwsim/mac80211_hwsim.rst
  
  MAILBOX API
  M:    Jassi Brar <[email protected]>
  L:    [email protected]
  T:    git git://linuxtv.org/media_tree.git
  S:    Supported
 -F:    Documentation/devicetree/bindings/media/renesas,rcar-csi2.txt
 -F:    Documentation/devicetree/bindings/media/rcar_vin.txt
 +F:    Documentation/devicetree/bindings/media/renesas,csi2.txt
 +F:    Documentation/devicetree/bindings/media/renesas,vin.txt
  F:    drivers/media/platform/rcar-vin/
  
  MEDIA DRIVERS FOR RENESAS - VSP1
@@@ -10285,7 -9967,7 +10285,7 @@@ MEDIATEK ETHERNET DRIVE
  M:    Felix Fietkau <[email protected]>
  M:    John Crispin <[email protected]>
  M:    Sean Wang <[email protected]>
 -M:    Nelson Chang <nelson.chang@mediatek.com>
 +M:    Mark Lee <Mark-MC.Lee@mediatek.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/mediatek/
  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]
@@@ -10495,7 -10170,6 +10495,7 @@@ Q:   http://patchwork.ozlabs.org/project/
  S:    Supported
  F:    drivers/net/ethernet/mellanox/mlx5/core/
  F:    include/linux/mlx5/
 +F:    Documentation/networking/device_drivers/mellanox/
  
  MELLANOX MLX5 IB driver
  M:    Leon Romanovsky <[email protected]>
  S:    Supported
  F:    drivers/i2c/busses/i2c-mlxcpld.c
  F:    drivers/i2c/muxes/i2c-mux-mlxcpld.c
 -F:    Documentation/i2c/busses/i2c-mlxcpld
 +F:    Documentation/i2c/busses/i2c-mlxcpld.rst
  
  MELLANOX MLXCPLD LED DRIVER
  M:    Vadim Pasternak <[email protected]>
@@@ -10532,7 -10206,7 +10532,7 @@@ F:   drivers/platform/x86/mlx-platform.
  
  MEMBARRIER SUPPORT
  M:    Mathieu Desnoyers <[email protected]>
 -M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@kernel.org>
  L:    [email protected]
  S:    Supported
  F:    kernel/sched/membarrier.c
@@@ -10548,12 -10222,8 +10548,12 @@@ F: mm/memblock.
  F:    Documentation/core-api/boot-time-mm.rst
  
  MEMORY MANAGEMENT
 +M:    Andrew Morton <[email protected]>
  L:    [email protected]
  W:    http://www.linux-mm.org
 +T:    quilt https://ozlabs.org/~akpm/mmotm/
 +T:    quilt https://ozlabs.org/~akpm/mmots/
 +T:    git git://github.com/hnaz/linux-mm.git
  S:    Maintained
  F:    include/linux/mm.h
  F:    include/linux/gfp.h
@@@ -10563,13 -10233,15 +10563,13 @@@ F:        include/linux/vmalloc.
  F:    mm/
  
  MEMORY TECHNOLOGY DEVICES (MTD)
 -M:    David Woodhouse <[email protected]>
 -M:    Brian Norris <[email protected]>
 -M:    Marek Vasut <[email protected]>
  M:    Miquel Raynal <[email protected]>
  M:    Richard Weinberger <[email protected]>
  M:    Vignesh Raghavendra <[email protected]>
  L:    [email protected]
  W:    http://www.linux-mtd.infradead.org/
  Q:    http://patchwork.ozlabs.org/project/linux-mtd/list/
 +C:    irc://irc.oftc.net/mtd
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/fixes
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next
  S:    Maintained
@@@ -10589,7 -10261,7 +10589,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]>
@@@ -10786,6 -10458,12 +10786,6 @@@ M:  Nicolas Ferre <nicolas.ferre@microch
  S:    Supported
  F:    drivers/power/reset/at91-sama5d2_shdwc.c
  
 -MICROCHIP SAMA5D2-COMPATIBLE PIOBU GPIO
 -M:    Andrei Stefanescu <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -L:    [email protected]
 -F:    drivers/gpio/gpio-sama5d2-piobu.c
 -
  MICROCHIP SPI DRIVER
  M:    Nicolas Ferre <[email protected]>
  S:    Supported
@@@ -10798,6 -10476,13 +10798,6 @@@ S:  Supporte
  F:    drivers/misc/atmel-ssc.c
  F:    include/linux/atmel-ssc.h
  
 -MICROCHIP TIMER COUNTER (TC) AND CLOCKSOURCE DRIVERS
 -M:    Nicolas Ferre <[email protected]>
 -L:    [email protected] (moderated for non-subscribers)
 -S:    Supported
 -F:    drivers/misc/atmel_tclib.c
 -F:    drivers/clocksource/tcb_clksrc.c
 -
  MICROCHIP USBA UDC DRIVER
  M:    Cristian Birsan <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -10860,7 -10545,7 +10860,7 @@@ F:   drivers/usb/image/microtek.
  
  MIPS
  M:    Ralf Baechle <[email protected]>
 -M:    Paul Burton <paul[email protected]>
 +M:    Paul Burton <paul[email protected]>
  M:    James Hogan <[email protected]>
  L:    [email protected]
  W:    http://www.linux-mips.org/
@@@ -10874,7 -10559,7 +10874,7 @@@ F:   arch/mips
  F:    drivers/platform/mips/
  
  MIPS BOSTON DEVELOPMENT BOARD
 -M:    Paul Burton <paul[email protected]>
 +M:    Paul Burton <paul[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/clock/img,boston-clock.txt
@@@ -10884,7 -10569,7 +10884,7 @@@ F:   drivers/clk/imgtec/clk-boston.
  F:    include/dt-bindings/clock/boston-clock.h
  
  MIPS GENERIC PLATFORM
 -M:    Paul Burton <paul[email protected]>
 +M:    Paul Burton <paul[email protected]>
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/power/mti,mips-cpc.txt
@@@ -10900,18 -10585,18 +10900,18 @@@ F:        arch/mips/include/asm/mach-loongson3
  F:    drivers/*/*loongson1*
  F:    drivers/*/*/*loongson1*
  
 -MIPS/LOONGSON2 ARCHITECTURE
 +MIPS/LOONGSON2EF ARCHITECTURE
  M:    Jiaxun Yang <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    arch/mips/loongson64/fuloong-2e/
 -F:    arch/mips/loongson64/lemote-2f/
 -F:    arch/mips/include/asm/mach-loongson64/
 +F:    arch/mips/loongson2ef/
 +F:    arch/mips/include/asm/mach-loongson2ef/
  F:    drivers/*/*loongson2*
  F:    drivers/*/*/*loongson2*
  
 -MIPS/LOONGSON3 ARCHITECTURE
 +MIPS/LOONGSON64 ARCHITECTURE
  M:    Huacai Chen <[email protected]>
 +M:    Jiaxun Yang <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    arch/mips/loongson64/
@@@ -10990,7 -10675,7 +10990,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
@@@ -11230,10 -10915,18 +11230,10 @@@ NET_FAILOVER MODUL
  M:    Sridhar Samudrala <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    driver/net/net_failover.c
 +F:    drivers/net/net_failover.c
  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)
@@@ -11250,7 -10943,7 +11250,7 @@@ F:   drivers/net/ethernet/neterion
  
  NETFILTER
  M:    Pablo Neira Ayuso <[email protected]>
 -M:    Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
 +M:    Jozsef Kadlecsik <kadlec@netfilter.org>
  M:    Florian Westphal <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -11291,7 -10984,7 +11291,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
  S:    Maintained
  W:    https://fedorahosted.org/dropwatch/
  F:    net/core/drop_monitor.c
 +F:    include/uapi/linux/net_dropmon.h
 +F:    include/net/drop_monitor.h
  
  NETWORKING DRIVERS
  M:    "David S. Miller" <[email protected]>
@@@ -11439,9 -11130,9 +11439,9 @@@ F:   include/trace/events/tcp.
  NETWORKING [TLS]
  M:    Boris Pismenny <[email protected]>
  M:    Aviad Yehezkel <[email protected]>
 -M:    Dave Watson <[email protected]>
  M:    John Fastabend <[email protected]>
  M:    Daniel Borkmann <[email protected]>
 +M:    Jakub Kicinski <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    net/tls/*
  S:    Supported
  F:    drivers/net/ethernet/qlogic/netxen/
  
 +NEXTHOP
 +M:    David Ahern <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    include/net/nexthop.h
 +F:    include/uapi/linux/nexthop.h
 +F:    include/net/netns/nexthop.h
 +F:    net/ipv4/nexthop.c
 +
  NFC SUBSYSTEM
  L:    [email protected]
  S:    Orphan
@@@ -11482,6 -11164,7 +11482,6 @@@ F:   include/net/nfc
  F:    include/uapi/linux/nfc.h
  F:    drivers/nfc/
  F:    include/linux/platform_data/nfcmrvl.h
 -F:    include/linux/platform_data/nxp-nci.h
  F:    Documentation/devicetree/bindings/net/nfc/
  
  NFS, SUNRPC, AND LOCKD CLIENTS
@@@ -11502,7 -11185,7 +11502,7 @@@ F:   include/uapi/linux/nfs
  F:    include/uapi/linux/sunrpc/
  
  NILFS2 FILESYSTEM
 -M:    Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
 +M:    Ryusuke Konishi <konishi.ryusuke@gmail.com>
  L:    [email protected]
  W:    https://nilfs.sourceforge.io/
  W:    https://nilfs.osdn.jp/
@@@ -11559,6 -11242,7 +11559,6 @@@ NOKIA N900 POWER SUPPLY DRIVER
  R:    Pali Rohár <[email protected]>
  F:    include/linux/power/bq2415x_charger.h
  F:    include/linux/power/bq27xxx_battery.h
 -F:    include/linux/power/isp1704_charger.h
  F:    drivers/power/supply/bq2415x_charger.c
  F:    drivers/power/supply/bq27xxx_battery.c
  F:    drivers/power/supply/bq27xxx_battery_i2c.c
@@@ -11571,12 -11255,6 +11571,12 @@@ S: Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
  F:    tools/include/nolibc/
  
 +NSDEPS
 +M:    Matthias Maennich <[email protected]>
 +S:    Maintained
 +F:    scripts/nsdeps
 +F:    Documentation/core-api/symbol-namespaces.rst
 +
  NTB AMD DRIVER
  M:    Shyam Sundar S K <[email protected]>
  L:    [email protected]
@@@ -11662,7 -11340,6 +11662,7 @@@ F:   drivers/nvme/target/fcloop.
  NVM EXPRESS TARGET DRIVER
  M:    Christoph Hellwig <[email protected]>
  M:    Sagi Grimberg <[email protected]>
 +M:    Chaitanya Kulkarni <[email protected]>
  L:    [email protected]
  T:    git://git.infradead.org/nvme.git
  W:    http://git.infradead.org/nvme.git
@@@ -11682,7 -11359,7 +11682,7 @@@ NXP FXAS21002C DRIVE
  M:    Rui Miguel Silva <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/iio/gyroscope/fxas21002c.txt
 +F:    Documentation/devicetree/bindings/iio/gyroscope/nxp,fxas21002c.txt
  F:    drivers/iio/gyro/fxas21002c_core.c
  F:    drivers/iio/gyro/fxas21002c.h
  F:    drivers/iio/gyro/fxas21002c_i2c.c
@@@ -11757,7 -11434,7 +11757,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]
@@@ -11928,7 -11605,6 +11928,7 @@@ S:   Maintaine
  F:    arch/arm/mach-omap2/
  F:    arch/arm/plat-omap/
  F:    arch/arm/configs/omap2plus_defconfig
 +F:    drivers/bus/ti-sysc.c
  F:    drivers/i2c/busses/i2c-omap.c
  F:    drivers/irqchip/irq-omap-intc.c
  F:    drivers/mfd/*omap*.c
@@@ -11949,7 -11625,6 +11949,7 @@@ F:   drivers/regulator/tps65910-regulator
  F:    drivers/regulator/twl-regulator.c
  F:    drivers/regulator/twl6030-regulator.c
  F:    include/linux/platform_data/i2c-omap.h
 +F:    include/linux/platform_data/ti-sysc.h
  
  ONION OMEGA2+ BOARD
  M:    Harvey Hunt <[email protected]>
@@@ -12012,21 -11687,6 +12012,21 @@@ T: git git://linuxtv.org/media_tree.gi
  S:    Maintained
  F:    drivers/media/i2c/ov5647.c
  
 +OMNIVISION OV5670 SENSOR DRIVER
 +M:    Chiranjeevi Rapolu <[email protected]>
 +M:    Hyungwoo Yang <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/ov5670.c
 +
 +OMNIVISION OV5675 SENSOR DRIVER
 +M:    Shawn Tu <[email protected]>
 +L:    [email protected]
 +T:    git git://linuxtv.org/media_tree.git
 +S:    Maintained
 +F:    drivers/media/i2c/ov5675.c
 +
  OMNIVISION OV5695 SENSOR DRIVER
  M:    Shunqian Zheng <[email protected]>
  L:    [email protected]
@@@ -12089,15 -11749,23 +12089,15 @@@ S:        Maintaine
  F:    drivers/mtd/nand/onenand/
  F:    include/linux/mtd/onenand*.h
  
 -ONSTREAM SCSI TAPE DRIVER
 -M:    Willem Riede <[email protected]>
 -L:    [email protected]
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/scsi/osst.txt
 -F:    drivers/scsi/osst.*
 -F:    drivers/scsi/osst_*.h
 -F:    drivers/scsi/st.h
 -
  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
  
@@@ -12148,7 -11816,7 +12148,7 @@@ M:   Andrew Lunn <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/i2c/i2c-ocores.txt
 -F:    Documentation/i2c/busses/i2c-ocores
 +F:    Documentation/i2c/busses/i2c-ocores.rst
  F:    drivers/i2c/busses/i2c-ocores.c
  F:    include/linux/platform_data/i2c-ocores.h
  
@@@ -12184,7 -11852,7 +12184,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
  S:    Supported
  F:    lib/packing.c
  F:    include/linux/packing.h
 -F:    Documentation/packing.txt
 +F:    Documentation/core-api/packing.rst
  
  PADATA PARALLEL EXECUTION MECHANISM
  M:    Steffen Klassert <[email protected]>
@@@ -12281,14 -11949,6 +12281,14 @@@ F: kernel/padata.
  F:    include/linux/padata.h
  F:    Documentation/padata.txt
  
 +PAGE POOL
 +M:    Jesper Dangaard Brouer <[email protected]>
 +M:    Ilias Apalodimas <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    net/core/page_pool.c
 +F:    include/net/page_pool.h
 +
  PANASONIC LAPTOP ACPI EXTRAS DRIVER
  M:    Harald Welte <[email protected]>
  L:    [email protected]
@@@ -12299,7 -11959,7 +12299,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
@@@ -12311,15 -11971,14 +12311,15 @@@ 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
 +F:    Documentation/virt/paravirt_ops.rst
  F:    arch/*/kernel/paravirt*
  F:    arch/*/include/asm/paravirt*.h
  F:    include/linux/hypervisor.h
@@@ -12328,7 -11987,7 +12328,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
@@@ -12344,15 -12003,12 +12344,15 @@@ F:        arch/parisc
  F:    Documentation/parisc/
  F:    drivers/parisc/
  F:    drivers/char/agp/parisc-agp.c
 +F:    drivers/input/misc/hp_sdc_rtc.c
  F:    drivers/input/serio/gscps2.c
 +F:    drivers/input/serio/hp_sdc*
  F:    drivers/parport/parport_gsc.*
  F:    drivers/tty/serial/8250/8250_gsc.c
  F:    drivers/video/fbdev/sti*
  F:    drivers/video/console/sti*
  F:    drivers/video/logo/logo_parisc*
 +F:    include/linux/hp_sdc.h
  
  PARMAN
  M:    Jiri Pirko <[email protected]>
@@@ -12490,7 -12146,7 +12490,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
@@@ -12575,11 -12231,11 +12575,11 @@@ 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
 -F:    Documentation/powerpc/eeh-pci-error-recovery.txt
 +F:    Documentation/powerpc/eeh-pci-error-recovery.rst
  F:    arch/powerpc/kernel/eeh*.c
  F:    arch/powerpc/platforms/*/eeh*.c
  F:    arch/powerpc/include/*/eeh*.h
@@@ -12588,7 -12244,7 +12588,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]>
@@@ -12627,18 -12283,16 +12627,18 @@@ F:        arch/x86/kernel/early-quirks.
  
  PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
  M:    Lorenzo Pieralisi <[email protected]>
 +R:    Andrew Murray <[email protected]>
  L:    [email protected]
  Q:    http://patchwork.ozlabs.org/project/linux-pci/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git/
  S:    Supported
  F:    drivers/pci/controller/
  
 -PCIE DRIVER FOR ANNAPURNA LABS
 +PCIE DRIVER FOR AMAZON ANNAPURNA LABS
  M:    Jonathan Chocron <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/pcie-al.txt
  F:    drivers/pci/controller/dwc/pcie-al.c
  
  PCIE DRIVER FOR AMLOGIC MESON
  S:    Maintained
  F:    drivers/platform/x86/peaq-wmi.c
  
 +PENSANDO ETHERNET DRIVERS
 +M:    Shannon Nelson <[email protected]>
 +M:    Pensando Drivers <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/networking/device_drivers/pensando/ionic.rst
 +F:    drivers/net/ethernet/pensando/
 +
  PER-CPU MEMORY ALLOCATOR
  M:    Dennis Zhou <[email protected]>
  M:    Tejun Heo <[email protected]>
@@@ -12785,7 -12431,6 +12785,7 @@@ PERFORMANCE EVENTS SUBSYSTE
  M:    Peter Zijlstra <[email protected]>
  M:    Ingo Molnar <[email protected]>
  M:    Arnaldo Carvalho de Melo <[email protected]>
 +R:    Mark Rutland <[email protected]>
  R:    Alexander Shishkin <[email protected]>
  R:    Jiri Olsa <[email protected]>
  R:    Namhyung Kim <[email protected]>
@@@ -12818,12 -12463,6 +12818,12 @@@ S: Maintaine
  F:    Documentation/input/devices/pxrc.rst
  F:    drivers/input/joystick/pxrc.c
  
 +FLYSKY FSIA6B RC RECEIVER
 +M:    Markus Koch <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/input/joystick/fsia6b.c
 +
  PHONET PROTOCOL
  M:    Remi Denis-Courmont <[email protected]>
  S:    Supported
@@@ -12854,18 -12493,6 +12854,18 @@@ 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/
 +F:    tools/testing/selftests/clone3/
 +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]
  L:    [email protected]
  S:    Supported
  F:    drivers/pinctrl/pinctrl-at91*
 +F:    drivers/gpio/gpio-sama5d2-piobu.c
  
  PIN CONTROLLER - FREESCALE
  M:    Dong Aisheng <[email protected]>
@@@ -12979,12 -12605,6 +12979,12 @@@ F: drivers/i2c/busses/i2c-puv3.
  F:    drivers/video/fbdev/fb-puv3.c
  F:    drivers/rtc/rtc-puv3.c
  
 +PLANTOWER PMS7003 AIR POLLUTION SENSOR DRIVER
 +M:    Tomasz Duszynski <[email protected]>
 +S:    Maintained
 +F:    drivers/iio/chemical/pms7003.c
 +F:    Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml
 +
  PMBUS HARDWARE MONITORING DRIVERS
  M:    Guenter Roeck <[email protected]>
  L:    [email protected]
@@@ -13022,7 -12642,8 +13022,7 @@@ S:   Orpha
  F:    drivers/scsi/pmcraid.*
  
  PMC SIERRA PM8001 DRIVER
 -M:    Jack Wang <[email protected]>
 -M:    [email protected]
 +M:    Jack Wang <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/scsi/pm8001/
@@@ -13058,7 -12679,6 +13058,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
  
@@@ -13117,7 -12737,7 +13117,7 @@@ M:   Rodolfo Giometti <giometti@enneenne.
  W:    http://wiki.enneenne.com/index.php/LinuxPPS_support
  L:    [email protected] (subscribers-only)
  S:    Maintained
 -F:    Documentation/pps/
 +F:    Documentation/driver-api/pps.rst
  F:    Documentation/devicetree/bindings/pps/pps-gpio.txt
  F:    Documentation/ABI/testing/sysfs-pps
  F:    drivers/pps/
@@@ -13159,14 -12779,12 +13159,14 @@@ F:        Documentation/filesystems/proc.tx
  PROC SYSCTL
  M:    Luis Chamberlain <[email protected]>
  M:    Kees Cook <[email protected]>
 +M:    Iurii Zaikin <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    fs/proc/proc_sysctl.c
  F:    include/linux/sysctl.h
  F:    kernel/sysctl.c
 +F:    kernel/sysctl-test.c
  F:    tools/testing/selftests/sysctl/
  
  PS3 NETWORK SUPPORT
  S:    Maintained
  W:    http://linuxptp.sourceforge.net/
  F:    Documentation/ABI/testing/sysfs-ptp
 -F:    Documentation/ptp/*
 +F:    Documentation/driver-api/ptp.rst
  F:    drivers/net/phy/dp83640*
  F:    drivers/ptp/*
  F:    include/linux/ptp_cl*
@@@ -13239,6 -12857,7 +13239,6 @@@ F:   include/linux/regset.
  F:    include/linux/tracehook.h
  F:    include/uapi/linux/ptrace.h
  F:    include/uapi/linux/ptrace.h
 -F:    include/asm-generic/ptrace.h
  F:    kernel/ptrace.c
  F:    arch/*/ptrace*.c
  F:    arch/*/*/ptrace*.c
@@@ -13287,12 -12906,10 +13287,12 @@@ F:        drivers/media/rc/pwm-ir-tx.
  
  PWM SUBSYSTEM
  M:    Thierry Reding <[email protected]>
 +R:    Uwe Kleine-König <[email protected]>
  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
 +Q:    https://patchwork.ozlabs.org/project/linux-pwm/list/
 +F:    Documentation/driver-api/pwm.rst
  F:    Documentation/devicetree/bindings/pwm/
  F:    include/linux/pwm.h
  F:    drivers/pwm/
@@@ -13300,7 -12917,6 +13300,7 @@@ F:   drivers/video/backlight/pwm_bl.
  F:    include/linux/pwm_backlight.h
  F:    drivers/gpio/gpio-mvebu.c
  F:    Documentation/devicetree/bindings/gpio/gpio-mvebu.txt
 +K:    pwm_(config|apply_state|ops)
  
  PXA GPIO DRIVER
  M:    Robert Jarzmik <[email protected]>
@@@ -13399,7 -13015,7 +13399,7 @@@ S:   Maintaine
  F:    drivers/scsi/qla1280.[ch]
  
  QLOGIC QLA2XXX FC-SCSI DRIVER
 -M:    qla2xxx-upstream@qlogic.com
 +M:    hmadhani@marvell.com
  L:    [email protected]
  S:    Supported
  F:    Documentation/scsi/LICENSE.qla2xxx
@@@ -13432,7 -13048,7 +13432,7 @@@ M:   Manish Chopra <[email protected]
  M:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    drivers/net/ethernet/qlogic/qlge/
 +F:    drivers/staging/qlge/
  
  QM1D1B0004 MEDIA DRIVER
  M:    Akihiro Tsukada <[email protected]>
@@@ -13500,8 -13116,8 +13500,8 @@@ QUALCOMM CPUFREQ DRIVER MSM8996/APQ809
  M:    Ilia Lin <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
 -F:    drivers/cpufreq/qcom-cpufreq-kryo.c
 +F:    Documentation/devicetree/bindings/opp/qcom-nvmem-cpufreq.txt
 +F:    drivers/cpufreq/qcom-cpufreq-nvmem.c
  
  QUALCOMM EMAC GIGABIT ETHERNET DRIVER
  M:    Timur Tabi <[email protected]>
@@@ -13515,7 -13131,7 +13515,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]>
@@@ -13525,8 -13141,9 +13525,8 @@@ S:   Supporte
  F:    drivers/i2c/busses/i2c-qcom-geni.c
  
  QUALCOMM HEXAGON ARCHITECTURE
 -M:    Richard Kuo <rkuo@codeaurora.org>
 +M:    Brian Cain <bcain@codeaurora.org>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel.git
  S:    Supported
  F:    arch/hexagon/
  
@@@ -13653,7 -13270,7 +13653,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
@@@ -13690,7 -13307,7 +13690,7 @@@ S:   Orpha
  F:    drivers/net/wireless/ray*
  
  RCUTORTURE TEST FRAMEWORK
 -M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@kernel.org>
  M:    Josh Triplett <[email protected]>
  R:    Steven Rostedt <[email protected]>
  R:    Mathieu Desnoyers <[email protected]>
@@@ -13737,7 -13354,7 +13737,7 @@@ F:   arch/x86/include/asm/resctrl_sched.
  F:    Documentation/x86/resctrl*
  
  READ-COPY UPDATE (RCU)
 -M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@kernel.org>
  M:    Josh Triplett <[email protected]>
  R:    Steven Rostedt <[email protected]>
  R:    Mathieu Desnoyers <[email protected]>
@@@ -13762,7 -13379,7 +13762,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
@@@ -13809,28 -13426,23 +13809,28 @@@ REMOTE PROCESSOR (REMOTEPROC) SUBSYSTE
  M:    Ohad Ben-Cohen <[email protected]>
  M:    Bjorn Andersson <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc.git rproc-next
  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]>
  M:    Bjorn Andersson <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ohad/rpmsg.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc.git rpmsg-next
  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]>
@@@ -13842,7 -13454,7 +13842,7 @@@ F:   drivers/clk/renesas
  RENESAS EMEV2 I2C DRIVER
  M:    Wolfram Sang <[email protected]>
  S:    Supported
 -F:    Documentation/devicetree/bindings/i2c/i2c-emev2.txt
 +F:    Documentation/devicetree/bindings/i2c/renesas,iic-emev2.txt
  F:    drivers/i2c/busses/i2c-emev2.c
  
  RENESAS ETHERNET DRIVERS
@@@ -13864,15 -13476,15 +13864,15 @@@ F:        drivers/iio/adc/rcar-gyroadc.
  RENESAS R-CAR I2C DRIVERS
  M:    Wolfram Sang <[email protected]>
  S:    Supported
 -F:    Documentation/devicetree/bindings/i2c/i2c-rcar.txt
 -F:    Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt
 +F:    Documentation/devicetree/bindings/i2c/renesas,i2c.txt
 +F:    Documentation/devicetree/bindings/i2c/renesas,iic.txt
  F:    drivers/i2c/busses/i2c-rcar.c
  F:    drivers/i2c/busses/i2c-sh_mobile.c
  
  RENESAS RIIC DRIVER
  M:    Chris Brandt <[email protected]>
  S:    Supported
 -F:    Documentation/devicetree/bindings/i2c/i2c-riic.txt
 +F:    Documentation/devicetree/bindings/i2c/renesas,riic.txt
  F:    drivers/i2c/busses/i2c-riic.c
  
  RENESAS USB PHY DRIVER
@@@ -13895,7 -13507,7 +13895,7 @@@ F:   include/linux/reset-controller.
  RESTARTABLE SEQUENCES SUPPORT
  M:    Mathieu Desnoyers <[email protected]>
  M:    Peter Zijlstra <[email protected]>
 -M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@kernel.org>
  M:    Boqun Feng <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -13911,7 -13523,7 +13911,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
@@@ -13939,11 -13551,10 +13939,11 @@@ F:        drivers/mtd/nand/raw/r852.
  F:    drivers/mtd/nand/raw/r852.h
  
  RISC-V ARCHITECTURE
 -M:    Palmer Dabbelt <[email protected]>
 +M:    Paul Walmsley <[email protected]>
 +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
@@@ -13958,8 -13569,7 +13958,8 @@@ F:   include/linux/hid-roccat
  F:    Documentation/ABI/*/sysfs-driver-hid-roccat*
  
  ROCKCHIP RASTER 2D GRAPHIC ACCELERATION UNIT DRIVER
 -M:    Jacob chen <[email protected]>
 +M:    Jacob Chen <[email protected]>
 +M:    Ezequiel Garcia <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/media/platform/rockchip/rga/
@@@ -13969,7 -13579,7 +13969,7 @@@ HANTRO VPU CODEC DRIVE
  M:    Ezequiel Garcia <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    drivers/staging/media/platform/hantro/
 +F:    drivers/staging/media/hantro/
  F:    Documentation/devicetree/bindings/media/rockchip-vpu.txt
  
  ROCKER DRIVER
@@@ -13982,7 -13592,7 +13982,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
@@@ -14163,6 -13773,7 +14163,6 @@@ F:   drivers/pci/hotplug/s390_pci_hpc.
  
  S390 VFIO-CCW DRIVER
  M:    Cornelia Huck <[email protected]>
 -M:    Farhan Ali <[email protected]>
  M:    Eric Farman <[email protected]>
  R:    Halil Pasic <[email protected]>
  L:    [email protected]
@@@ -14231,12 -13842,6 +14231,12 @@@ F: drivers/media/common/saa7146
  F:    drivers/media/pci/saa7146/
  F:    include/media/drv-intf/saa7146*
  
 +SAFESETID SECURITY MODULE
 +M:     Micah Morton <[email protected]>
 +S:     Supported
 +F:     security/safesetid/
 +F:     Documentation/admin-guide/LSM/SafeSetID.rst
 +
  SAMSUNG AUDIO (ASoC) DRIVERS
  M:    Krzysztof Kozlowski <[email protected]>
  M:    Sangbeom Kim <[email protected]>
@@@ -14327,8 -13932,6 +14327,8 @@@ M:   Kamil Konieczny <k.konieczny@partner
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/crypto/samsung-slimsss.txt
 +F:    Documentation/devicetree/bindings/crypto/samsung-sss.txt
  F:    drivers/crypto/s5p-sss.c
  
  SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
@@@ -14349,8 -13952,6 +14349,8 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    drivers/clk/samsung/
  F:    include/dt-bindings/clock/exynos*.h
  F:    Documentation/devicetree/bindings/clock/exynos*.txt
 +F:    Documentation/devicetree/bindings/clock/samsung,s3c*
 +F:    Documentation/devicetree/bindings/clock/samsung,s5p*
  
  SAMSUNG SPI DRIVERS
  M:    Kukjin Kim <[email protected]>
@@@ -14385,7 -13986,7 +14385,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
@@@ -14401,12 -14002,6 +14401,12 @@@ F: drivers/watchdog/sc1200wdt.
  SCHEDULER
  M:    Ingo Molnar <[email protected]>
  M:    Peter Zijlstra <[email protected]>
 +M:    Juri Lelli <[email protected]> (SCHED_DEADLINE)
 +M:    Vincent Guittot <[email protected]> (SCHED_NORMAL)
 +R:    Dietmar Eggemann <[email protected]> (SCHED_NORMAL)
 +R:    Steven Rostedt <[email protected]> (SCHED_FIFO/SCHED_RR)
 +R:    Ben Segall <[email protected]> (CONFIG_CFS_BANDWIDTH)
 +R:    Mel Gorman <[email protected]> (CONFIG_NUMA_BALANCING)
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core
  S:    Maintained
@@@ -14501,7 -14096,7 +14501,7 @@@ F:   net/sctp
  SCx200 CPU SUPPORT
  M:    Jim Cromie <[email protected]>
  S:    Odd Fixes
 -F:    Documentation/i2c/busses/scx200_acb
 +F:    Documentation/i2c/busses/scx200_acb.rst
  F:    arch/x86/platform/scx200/
  F:    drivers/watchdog/scx200_wdt.c
  F:    drivers/i2c/busses/scx200*
@@@ -14644,12 -14239,6 +14644,12 @@@ S: Maintaine
  F:    drivers/misc/phantom.c
  F:    include/uapi/linux/phantom.h
  
 +SENSIRION SPS30 AIR POLLUTION SENSOR DRIVER
 +M:    Tomasz Duszynski <[email protected]>
 +S:    Maintained
 +F:    drivers/iio/chemical/sps30.c
 +F:    Documentation/devicetree/bindings/iio/chemical/sensirion,sps30.yaml
 +
  SERIAL DEVICE BUS
  M:    Rob Herring <[email protected]>
  L:    [email protected]
@@@ -14687,7 -14276,6 +14687,7 @@@ F:   drivers/net/phy/phylink.
  F:    drivers/net/phy/sfp*
  F:    include/linux/phylink.h
  F:    include/linux/sfp.h
 +K:    phylink
  
  SGI GRU DRIVER
  M:    Dimitri Sivanich <[email protected]>
@@@ -14698,7 -14286,7 +14698,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
  
@@@ -14817,17 -14405,17 +14817,17 @@@ F:        drivers/media/usb/siano
  F:    drivers/media/mmc/siano/
  
  SIFIVE DRIVERS
 -M:    Palmer Dabbelt <palmer@sifive.com>
 +M:    Palmer Dabbelt <palmer@dabbelt.com>
  M:    Paul Walmsley <[email protected]>
  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
  M:    Paul Walmsley <[email protected]>
 -M:    Palmer Dabbelt <palmer@sifive.com>
 +M:    Palmer Dabbelt <palmer@dabbelt.com>
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pjw/sifive.git
  S:    Supported
@@@ -14849,7 -14437,7 +14849,7 @@@ M:   Sudip Mukherjee <sudip.mukherjee@cod
  L:    [email protected]
  S:    Maintained
  F:    drivers/video/fbdev/sm712*
 -F:    Documentation/fb/sm712fb.txt
 +F:    Documentation/fb/sm712fb.rst
  
  SIMPLE FIRMWARE INTERFACE (SFI)
  M:    Len Brown <[email protected]>
@@@ -14919,7 -14507,7 +14919,7 @@@ SIS FRAMEBUFFER DRIVE
  M:    Thomas Winischhofer <[email protected]>
  W:    http://www.winischhofer.net/linuxsisvga.shtml
  S:    Maintained
 -F:    Documentation/fb/sisfb.txt
 +F:    Documentation/fb/sisfb.rst
  F:    drivers/video/fbdev/sis/
  F:    include/video/sisfb.h
  
@@@ -14942,7 -14530,7 +14942,7 @@@ F:   mm/sl?b
  
  SLEEPABLE READ-COPY UPDATE (SRCU)
  M:    Lai Jiangshan <[email protected]>
 -M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@kernel.org>
  M:    Josh Triplett <[email protected]>
  R:    Steven Rostedt <[email protected]>
  R:    Mathieu Desnoyers <[email protected]>
@@@ -15057,13 -14645,6 +15057,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]
@@@ -15093,9 -14674,9 +15093,9 @@@ F:   include/linux/arm_sdei.
  F:    include/uapi/linux/arm_sdei.h
  
  SOFTWARE RAID (Multiple Disks) SUPPORT
 -M:    Shaohua Li <shli@kernel.org>
 +M:    Song Liu <song@kernel.org>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shli/md.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/song/md.git
  S:    Supported
  F:    drivers/md/Makefile
  F:    drivers/md/Kconfig
@@@ -15113,7 -14694,6 +15113,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
@@@ -15205,7 -14785,7 +15205,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
@@@ -15323,6 -14903,7 +15323,6 @@@ F:   arch/arm/boot/dts/spear
  F:    arch/arm/mach-spear/
  
  SPI NOR SUBSYSTEM
 -M:    Marek Vasut <[email protected]>
  M:    Tudor Ambarus <[email protected]>
  L:    [email protected]
  W:    http://www.linux-mtd.infradead.org/
@@@ -15425,16 -15006,12 +15425,16 @@@ M:        H Hartley Sweeten <hsweeten@visionen
  S:    Odd Fixes
  F:    drivers/staging/comedi/
  
 -STAGING - EROFS FILE SYSTEM
 -M:    Gao Xiang <[email protected]>
 -M:    Chao Yu <[email protected]>
 -L:    [email protected]
 +STAGING - FIELDBUS SUBSYSTEM
 +M:    Sven Van Asbroeck <[email protected]>
 +S:    Maintained
 +F:    drivers/staging/fieldbus/*
 +F:    drivers/staging/fieldbus/Documentation/
 +
 +STAGING - HMS ANYBUS-S BUS
 +M:    Sven Van Asbroeck <[email protected]>
  S:    Maintained
 -F:    drivers/staging/erofs/
 +F:    drivers/staging/fieldbus/anybuss/
  
  STAGING - INDUSTRIAL IO
  M:    Jonathan Cameron <[email protected]>
@@@ -15615,7 -15192,7 +15615,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
@@@ -15652,7 -15229,7 +15652,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
@@@ -15712,7 -15289,7 +15712,7 @@@ F:   Documentation/devicetree/bindings/gp
  SYNOPSYS DESIGNWARE AXI DMAC DRIVER
  M:    Eugeniy Paltsev <[email protected]>
  S:    Maintained
 -F:    drivers/dma/dwi-axi-dmac/
 +F:    drivers/dma/dw-axi-dmac/
  F:    Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.txt
  
  SYNOPSYS DESIGNWARE DMAC DRIVER
@@@ -15769,7 -15346,6 +15769,7 @@@ F:   drivers/clk/clk-sc[mp]i.
  F:    drivers/cpufreq/sc[mp]i-cpufreq.c
  F:    drivers/firmware/arm_scpi.c
  F:    drivers/firmware/arm_scmi/
 +F:    drivers/reset/reset-scmi.c
  F:    include/linux/sc[mp]i_protocol.h
  
  SYSTEM RESET/SHUTDOWN DRIVERS
@@@ -15975,7 -15551,6 +15975,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
@@@ -16078,7 -15653,6 +16078,7 @@@ F:   drivers/firmware/ti_sci
  F:    include/linux/soc/ti/ti_sci_protocol.h
  F:    Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
  F:    drivers/soc/ti/ti_sci_pm_domains.c
 +F:    include/dt-bindings/soc/ti,sci_pm_domain.h
  F:    Documentation/devicetree/bindings/reset/ti,sci-reset.txt
  F:    Documentation/devicetree/bindings/clock/ti,sci-clk.txt
  F:    drivers/clk/keystone/sci-clk.c
@@@ -16115,7 -15689,6 +16115,7 @@@ THERMA
  M:    Zhang Rui <[email protected]>
  M:    Eduardo Valentin <[email protected]>
  R:    Daniel Lezcano <[email protected]>
 +R:    Amit Kucheria <[email protected]>
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git
@@@ -16133,7 -15706,7 +16133,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/driver-api/thermal/cpu-cooling-api.rst
  F:    drivers/thermal/cpu_cooling.c
  F:    include/linux/cpu_cooling.h
  
@@@ -16277,7 -15850,7 +16277,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
  
@@@ -16305,7 -15878,7 +16305,7 @@@ S:   Maintaine
  F:    drivers/net/ethernet/ti/netcp*
  
  TI PCM3060 ASoC CODEC DRIVER
 -M:    Kirill Marinushkin <kmarinushkin@birdec.tech>
 +M:    Kirill Marinushkin <kmarinushkin@birdec.com>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/sound/pcm3060.txt
@@@ -16434,7 -16007,7 +16434,7 @@@ F:   drivers/platform/x86/topstar-laptop.
  
  TORTURE-TEST MODULES
  M:    Davidlohr Bueso <[email protected]>
 -M:    "Paul E. McKenney" <paulmck@linux.ibm.com>
 +M:    "Paul E. McKenney" <paulmck@kernel.org>
  M:    Josh Triplett <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -16541,7 -16114,7 +16541,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
@@@ -16619,9 -16192,10 +16619,9 @@@ F:  drivers/media/pci/tw686x
  
  UBI FILE SYSTEM (UBIFS)
  M:    Richard Weinberger <[email protected]>
 -M:    Artem Bityutskiy <[email protected]>
 -M:    Adrian Hunter <[email protected]>
  L:    [email protected]
 -T:    git git://git.infradead.org/ubifs-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git next
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git fixes
  W:    http://www.linux-mtd.infradead.org/doc/ubifs.html
  S:    Supported
  F:    Documentation/filesystems/ubifs.txt
@@@ -16655,7 -16229,7 +16655,7 @@@ F:   drivers/hid/hid-udraw-ps3.
  UFS FILESYSTEM
  M:    Evgeniy Dushistov <[email protected]>
  S:    Maintained
 -F:    Documentation/filesystems/ufs.txt
 +F:    Documentation/admin-guide/ufs.rst
  F:    fs/ufs/
  
  UHID USERSPACE HID IO DRIVER:
@@@ -16673,9 -16247,11 +16673,9 @@@ F:  drivers/usb/common/ulpi.
  F:    include/linux/ulpi/
  
  ULTRA-WIDEBAND (UWB) SUBSYSTEM:
 -L:    [email protected]
 -S:    Orphan
 -F:    drivers/uwb/
 -F:    include/linux/uwb.h
 -F:    include/linux/uwb/
 +L:    [email protected]
 +S:    Obsolete
 +F:    drivers/staging/uwb/
  
  UNICODE SUBSYSTEM:
  M:    Gabriel Krisman Bertazi <[email protected]>
@@@ -16736,11 -16312,11 +16736,11 @@@ S:        Maintaine
  F:    drivers/scsi/ufs/ufs-mediatek*
  
  UNSORTED BLOCK IMAGES (UBI)
 -M:    Artem Bityutskiy <[email protected]>
  M:    Richard Weinberger <[email protected]>
  W:    http://www.linux-mtd.infradead.org/
  L:    [email protected]
 -T:    git git://git.infradead.org/ubifs-2.6.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git next
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git fixes
  S:    Supported
  F:    drivers/mtd/ubi/
  F:    include/linux/mtd/ubi.h
@@@ -16758,7 -16334,7 +16758,7 @@@ USB ACM DRIVE
  M:    Oliver Neukum <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/usb/acm.txt
 +F:    Documentation/usb/acm.rst
  F:    drivers/usb/class/cdc-acm.*
  
  USB AR5523 WIRELESS DRIVER
@@@ -16800,11 -16376,18 +16800,11 @@@ W:        http://www.linux-usb.org/usbne
  S:    Maintained
  F:    drivers/net/usb/dm9601.c
  
 -USB DIAMOND RIO500 DRIVER
 -M:    Cesar Miquel <[email protected]>
 -L:    [email protected]
 -W:    http://rio500.sourceforge.net
 -S:    Maintained
 -F:    drivers/usb/misc/rio500*
 -
  USB EHCI DRIVER
  M:    Alan Stern <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/usb/ehci.txt
 +F:    Documentation/usb/ehci.rst
  F:    drivers/usb/host/ehci*
  
  USB GADGET/PERIPHERAL SUBSYSTEM
@@@ -16822,7 -16405,7 +16822,7 @@@ M:   Benjamin Tissoires <benjamin.tissoir
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git
  S:    Maintained
 -F:    Documentation/hid/hiddev.txt
 +F:    Documentation/hid/hiddev.rst
  F:    drivers/hid/usbhid/
  
  USB INTEL XHCI ROLE MUX DRIVER
@@@ -16878,7 -16461,7 +16878,7 @@@ USB OHCI DRIVE
  M:    Alan Stern <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/usb/ohci.txt
 +F:    Documentation/usb/ohci.rst
  F:    drivers/usb/host/ohci*
  
  USB OTG FSM (Finite State Machine)
@@@ -16894,7 -16477,7 +16894,7 @@@ M:   Shuah Khan <[email protected]
  M:    Shuah Khan <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/usb/usbip_protocol.txt
 +F:    Documentation/usb/usbip_protocol.rst
  F:    drivers/usb/usbip/
  F:    tools/usb/usbip/
  F:    tools/testing/selftests/drivers/usb/usbip/
@@@ -16942,7 -16525,7 +16942,7 @@@ M:   Johan Hovold <[email protected]
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial.git
  S:    Maintained
 -F:    Documentation/usb/usb-serial.txt
 +F:    Documentation/usb/usb-serial.rst
  F:    drivers/usb/serial/
  F:    include/linux/usb/serial.h
  
@@@ -17071,7 -16654,7 +17071,7 @@@ W:   http://user-mode-linux.sourceforge.n
  Q:    https://patchwork.ozlabs.org/project/linux-um/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml.git
  S:    Maintained
 -F:    Documentation/virtual/uml/
 +F:    Documentation/virt/uml/
  F:    arch/um/
  F:    arch/x86/um/
  F:    fs/hostfs/
@@@ -17121,7 -16704,7 +17121,7 @@@ M:   Michal Januszewski <[email protected]
  L:    [email protected]
  W:    https://github.com/mjanusz/v86d
  S:    Maintained
 -F:    Documentation/fb/uvesafb.txt
 +F:    Documentation/fb/uvesafb.rst
  F:    drivers/video/fbdev/uvesafb.*
  
  VF610 NAND DRIVER
@@@ -17142,7 -16725,7 +17142,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
@@@ -17151,7 -16734,7 +17151,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/
@@@ -17242,7 -16825,6 +17242,7 @@@ F:   virt/lib
  
  VIRTIO AND VHOST VSOCK DRIVER
  M:    Stefan Hajnoczi <[email protected]>
 +M:    Stefano Garzarella <[email protected]>
  L:    [email protected]
  L:    [email protected]
  L:    [email protected]
@@@ -17313,18 -16895,6 +17313,18 @@@ S: Supporte
  F:    drivers/s390/virtio/
  F:    arch/s390/include/uapi/asm/virtio-ccw.h
  
 +VIRTIO FILE SYSTEM
 +M:    Vivek Goyal <[email protected]>
 +M:    Stefan Hajnoczi <[email protected]>
 +M:    Miklos Szeredi <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +W:    https://virtio-fs.gitlab.io/
 +S:    Supported
 +F:    fs/fuse/virtio_fs.c
 +F:    include/uapi/linux/virtio_fs.h
 +F:    Documentation/filesystems/virtiofs.rst
 +
  VIRTIO GPU DRIVER
  M:    David Airlie <[email protected]>
  M:    Gerd Hoffmann <[email protected]>
@@@ -17352,13 -16922,6 +17352,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]>
@@@ -17402,6 -16965,7 +17402,6 @@@ F:   drivers/vme
  F:    include/linux/vme*
  
  VMWARE BALLOON DRIVER
 -M:    Julien Freche <[email protected]>
  M:    Nadav Amit <[email protected]>
  M:    "VMware, Inc." <[email protected]>
  L:    [email protected]
@@@ -17409,12 -16973,10 +17409,12 @@@ 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
 +F:    arch/x86/include/asm/vmware.h
  
  VMWARE PVRDMA DRIVER
  M:    Adit Ranadive <[email protected]>
@@@ -17464,16 -17026,27 +17464,28 @@@ F:        Documentation/power/regulator
  F:    drivers/regulator/
  F:    include/dt-bindings/regulator/
  F:    include/linux/regulator/
 +K:    regulator_get_optional
  
  VRF
 -M:    David Ahern <dsa@cumulusnetworks.com>
 +M:    David Ahern <dsa[email protected]>
  M:    Shrijeet Mukherjee <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/vrf.c
  F:    Documentation/networking/vrf.txt
  
+ VSPRINTF
+ M:    Petr Mladek <[email protected]>
+ M:    Steven Rostedt <[email protected]>
+ M:    Sergey Senozhatsky <[email protected]>
+ R:    Andy Shevchenko <[email protected]>
+ R:    Rasmus Villemoes <[email protected]>
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk.git
+ S:    Maintained
+ F:    lib/vsprintf.c
+ F:    lib/test_printf.c
+ F:    Documentation/core-api/printk-formats.rst
  VT1211 HARDWARE MONITOR DRIVER
  M:    Juerg Haefliger <[email protected]>
  L:    [email protected]
  L:    [email protected] (subscribers-only)
  S:    Supported
  W:    http://linuxwimax.org
 -F:    Documentation/wimax/README.wimax
 +F:    Documentation/admin-guide/wimax/wimax.rst
  F:    include/linux/wimax/debug.h
  F:    include/net/wimax.h
  F:    include/uapi/linux/wimax.h
@@@ -17733,7 -17306,7 +17745,7 @@@ M:   Darren Hart <[email protected]
  M:    Andy Shevchenko <[email protected]>
  L:    [email protected]
  T:    git git://git.infradead.org/linux-platform-drivers-x86.git
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/platform/x86/
  F:    drivers/platform/olpc/
  
@@@ -17786,6 -17359,7 +17798,6 @@@ M:   Jakub Kicinski <jakub.kicinski@netro
  M:    Jesper Dangaard Brouer <[email protected]>
  M:    John Fastabend <[email protected]>
  L:    [email protected]
 -L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    net/core/xdp.c
@@@ -17799,7 -17373,6 +17811,7 @@@ N:   xd
  XDP SOCKETS (AF_XDP)
  M:    Björn Töpel <[email protected]>
  M:    Magnus Karlsson <[email protected]>
 +R:    Jonathan Lemon <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -17848,7 -17421,7 +17860,7 @@@ F:   Documentation/ABI/testing/sysfs-hype
  
  XEN NETWORK BACKEND DRIVER
  M:    Wei Liu <[email protected]>
 -M:    Paul Durrant <paul[email protected]>
 +M:    Paul Durrant <paul@xen.org>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Supported
@@@ -17892,16 -17465,12 +17904,16 @@@ L:        [email protected]
  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-delayed-logging-design.txt
 +F:    Documentation/filesystems/xfs-self-describing-metadata.txt
  F:    fs/xfs/
 +F:    include/uapi/linux/dqblk_xfs.h
 +F:    include/uapi/linux/fsmap.h
  
  XILINX AXI ETHERNET DRIVER
 -M:    Anirudha Sarangi <[email protected]>
 -M:    John Linn <[email protected]>
 +M:    Radhey Shyam Pandey <[email protected]>
  S:    Maintained
  F:    drivers/net/ethernet/xilinx/xilinx_axienet*
  
@@@ -17921,17 -17490,6 +17933,17 @@@ F: Documentation/devicetree/bindings/me
  F:    drivers/media/platform/xilinx/
  F:    include/uapi/linux/xilinx-v4l2-controls.h
  
 +XILINX SD-FEC IP CORES
 +M:    Derek Kiernan <[email protected]>
 +M:    Dragan Cvetic <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/misc/xlnx,sd-fec.txt
 +F:    Documentation/misc-devices/xilinx_sdfec.rst
 +F:    drivers/misc/xilinx_sdfec.c
 +F:    drivers/misc/Kconfig
 +F:    drivers/misc/Makefile
 +F:    include/uapi/misc/xilinx_sdfec.h
 +
  XILLYBUS DRIVER
  M:    Eli Billauer <[email protected]>
  L:    [email protected]
@@@ -18041,6 -17599,14 +18053,6 @@@ S:  Maintaine
  F:    mm/zpool.c
  F:    include/linux/zpool.h
  
 -ZR36067 VIDEO FOR LINUX DRIVER
 -L:    [email protected]
 -L:    [email protected]
 -W:    http://mjpeg.sourceforge.net/driver-zoran/
 -T:    hg https://linuxtv.org/hg/v4l-dvb
 -S:    Odd Fixes
 -F:    drivers/staging/media/zoran/
 -
  ZRAM COMPRESSED RAM BLOCK DEVICE DRVIER
  M:    Minchan Kim <[email protected]>
  M:    Nitin Gupta <[email protected]>
@@@ -18048,7 -17614,7 +18060,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]>
@@@ -18068,7 -17634,6 +18080,7 @@@ F:   Documentation/vm/zsmalloc.rs
  ZSWAP COMPRESSED SWAP CACHING
  M:    Seth Jennings <[email protected]>
  M:    Dan Streetman <[email protected]>
 +M:    Vitaly Wool <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    mm/zswap.c
index 38ee1514cd9cde9135dc6e272b72a50ee702eb91,4f829008f7d87df72485c9d690e24d5c0e151ef5..0b727edf41046e2f9901674bb8f088dc464bbdb3
@@@ -51,7 -51,7 +51,7 @@@ int hw_breakpoint_slots(int type
        case TYPE_DATA:
                return get_num_wrps();
        default:
-               pr_warning("unknown slot type: %d\n", type);
+               pr_warn("unknown slot type: %d\n", type);
                return 0;
        }
  }
@@@ -112,7 -112,7 +112,7 @@@ static u64 read_wb_reg(int reg, int n
        GEN_READ_WB_REG_CASES(AARCH64_DBG_REG_WVR, AARCH64_DBG_REG_NAME_WVR, val);
        GEN_READ_WB_REG_CASES(AARCH64_DBG_REG_WCR, AARCH64_DBG_REG_NAME_WCR, val);
        default:
-               pr_warning("attempt to read from unknown breakpoint register %d\n", n);
+               pr_warn("attempt to read from unknown breakpoint register %d\n", n);
        }
  
        return val;
@@@ -127,7 -127,7 +127,7 @@@ static void write_wb_reg(int reg, int n
        GEN_WRITE_WB_REG_CASES(AARCH64_DBG_REG_WVR, AARCH64_DBG_REG_NAME_WVR, val);
        GEN_WRITE_WB_REG_CASES(AARCH64_DBG_REG_WCR, AARCH64_DBG_REG_NAME_WCR, val);
        default:
-               pr_warning("attempt to write to unknown breakpoint register %d\n", n);
+               pr_warn("attempt to write to unknown breakpoint register %d\n", n);
        }
        isb();
  }
@@@ -145,7 -145,7 +145,7 @@@ static enum dbg_active_el debug_excepti
        case AARCH64_BREAKPOINT_EL1:
                return DBG_ACTIVE_EL1;
        default:
-               pr_warning("invalid breakpoint privilege level %d\n", privilege);
+               pr_warn("invalid breakpoint privilege level %d\n", privilege);
                return -EINVAL;
        }
  }
@@@ -536,18 -536,13 +536,18 @@@ int hw_breakpoint_arch_parse(struct per
                        /* Aligned */
                        break;
                case 1:
 -                      /* Allow single byte watchpoint. */
 -                      if (hw->ctrl.len == ARM_BREAKPOINT_LEN_1)
 -                              break;
                case 2:
                        /* Allow halfword watchpoints and breakpoints. */
                        if (hw->ctrl.len == ARM_BREAKPOINT_LEN_2)
                                break;
 +
 +                      /* Fallthrough */
 +              case 3:
 +                      /* Allow single byte watchpoint. */
 +                      if (hw->ctrl.len == ARM_BREAKPOINT_LEN_1)
 +                              break;
 +
 +                      /* Fallthrough */
                default:
                        return -EINVAL;
                }
diff --combined arch/arm64/kernel/smp.c
index dc9fe879c27932ef413dc99df73f39994855f052,09cf729edb20903b4f5af2e7aef1a4f21d7c58f3..ab149bcc3dc7c3b9c7ddb182c81104a2909f9b5b
@@@ -123,7 -123,7 +123,7 @@@ int __cpu_up(unsigned int cpu, struct t
                 * time out.
                 */
                wait_for_completion_timeout(&cpu_running,
 -                                          msecs_to_jiffies(1000));
 +                                          msecs_to_jiffies(5000));
  
                if (!cpu_online(cpu)) {
                        pr_crit("CPU%u: failed to come online\n", cpu);
  
        secondary_data.task = NULL;
        secondary_data.stack = NULL;
 +      __flush_dcache_area(&secondary_data, sizeof(secondary_data));
        status = READ_ONCE(secondary_data.status);
        if (ret && status) {
  
                default:
                        pr_err("CPU%u: failed in unknown state : 0x%lx\n",
                                        cpu, status);
 +                      cpus_stuck_in_kernel++;
                        break;
                case CPU_KILL_ME:
                        if (!op_cpu_kill(cpu)) {
                                pr_crit("CPU%u: died during early boot\n", cpu);
                                break;
                        }
 -                      /* Fall through */
                        pr_crit("CPU%u: may not have shut down cleanly\n", cpu);
 +                      /* Fall through */
                case CPU_STUCK_IN_KERNEL:
                        pr_crit("CPU%u: is stuck in kernel\n", cpu);
                        if (status & CPU_STUCK_REASON_52_BIT_VA)
@@@ -345,8 -343,7 +345,7 @@@ void __cpu_die(unsigned int cpu
         */
        err = op_cpu_kill(cpu);
        if (err)
-               pr_warn("CPU%d may not have shut down cleanly: %d\n",
-                       cpu, err);
+               pr_warn("CPU%d may not have shut down cleanly: %d\n", cpu, err);
  }
  
  /*
@@@ -422,6 -419,11 +421,6 @@@ void __init smp_cpus_done(unsigned int 
  void __init smp_prepare_boot_cpu(void)
  {
        set_my_cpu_offset(per_cpu_offset(smp_processor_id()));
 -      /*
 -       * Initialise the static keys early as they may be enabled by the
 -       * cpufeature code.
 -       */
 -      jump_label_init();
        cpuinfo_store_boot_cpu();
  
        /*
@@@ -976,8 -978,8 +975,8 @@@ void smp_send_stop(void
                udelay(1);
  
        if (num_online_cpus() > 1)
-               pr_warning("SMP: failed to stop secondary CPUs %*pbl\n",
-                          cpumask_pr_args(cpu_online_mask));
+               pr_warn("SMP: failed to stop secondary CPUs %*pbl\n",
+                       cpumask_pr_args(cpu_online_mask));
  
        sdei_mask_local_cpu();
  }
@@@ -1017,8 -1019,8 +1016,8 @@@ void crash_smp_send_stop(void
                udelay(1);
  
        if (atomic_read(&waiting_for_crash_ipi) > 0)
-               pr_warning("SMP: failed to stop secondary CPUs %*pbl\n",
-                          cpumask_pr_args(&mask));
+               pr_warn("SMP: failed to stop secondary CPUs %*pbl\n",
+                       cpumask_pr_args(&mask));
  
        sdei_mask_local_cpu();
  }
diff --combined arch/ia64/kernel/setup.c
index bb320c6d0cc98fedb1a60b91194e4ee38edd5a8f,5e57708c330659ca2ca36a63a59b629ae298316b..c49fcef754de3b43186148830ebc45a171494a0f
@@@ -30,7 -30,6 +30,7 @@@
  #include <linux/console.h>
  #include <linux/delay.h>
  #include <linux/cpu.h>
 +#include <linux/kdev_t.h>
  #include <linux/kernel.h>
  #include <linux/memblock.h>
  #include <linux/reboot.h>
@@@ -42,7 -41,6 +42,7 @@@
  #include <linux/threads.h>
  #include <linux/screen_info.h>
  #include <linux/dmi.h>
 +#include <linux/root_dev.h>
  #include <linux/serial.h>
  #include <linux/serial_core.h>
  #include <linux/efi.h>
@@@ -52,6 -50,7 +52,6 @@@
  #include <linux/kexec.h>
  #include <linux/crash_dump.h>
  
 -#include <asm/machvec.h>
  #include <asm/mca.h>
  #include <asm/meminit.h>
  #include <asm/page.h>
  #include <asm/smp.h>
  #include <asm/tlbflush.h>
  #include <asm/unistd.h>
 -#include <asm/hpsim.h>
 +#include <asm/uv/uv.h>
  
  #if defined(CONFIG_SMP) && (IA64_CPU_SIZE > PAGE_SIZE)
  # error "struct cpuinfo_ia64 too big!"
  #endif
  
 +char ia64_platform_name[64];
 +
  #ifdef CONFIG_SMP
  unsigned long __per_cpu_offset[NR_CPUS];
  EXPORT_SYMBOL(__per_cpu_offset);
@@@ -259,15 -256,15 +259,15 @@@ __initcall(register_memory)
   * This function checks if the reserved crashkernel is allowed on the specific
   * IA64 machine flavour. Machines without an IO TLB use swiotlb and require
   * some memory below 4 GB (i.e. in 32 bit area), see the implementation of
 - * lib/swiotlb.c. The hpzx1 architecture has an IO TLB but cannot use that
 + * kernel/dma/swiotlb.c. The hpzx1 architecture has an IO TLB but cannot use that
   * in kdump case. See the comment in sba_init() in sba_iommu.c.
   *
   * So, the only machvec that really supports loading the kdump kernel
 - * over 4 GB is "sn2".
 + * over 4 GB is "uv".
   */
  static int __init check_crashkernel_memory(unsigned long pbase, size_t size)
  {
 -      if (ia64_platform_is("sn2") || ia64_platform_is("uv"))
 +      if (is_uv_system())
                return 1;
        else
                return pbase < (1UL << 32);
@@@ -289,7 -286,7 +289,7 @@@ static void __init setup_crashkernel(un
                }
  
                if (!check_crashkernel_memory(base, size)) {
-                       pr_warning("crashkernel: There would be kdump memory "
+                       pr_warn("crashkernel: There would be kdump memory "
                                "at %ld GB but this is unusable because it "
                                "must\nbe below 4 GB. Change the memory "
                                "configuration of the machine.\n",
@@@ -464,44 -461,23 +464,44 @@@ io_port_init (void
  static inline int __init
  early_console_setup (char *cmdline)
  {
 -      int earlycons = 0;
 -
 -#ifdef CONFIG_SERIAL_SGI_L1_CONSOLE
 -      {
 -              extern int sn_serial_console_early_setup(void);
 -              if (!sn_serial_console_early_setup())
 -                      earlycons++;
 -      }
 -#endif
  #ifdef CONFIG_EFI_PCDP
        if (!efi_setup_pcdp_console(cmdline))
 -              earlycons++;
 +              return 0;
  #endif
 -      if (!simcons_register())
 -              earlycons++;
 +      return -1;
 +}
 +
 +static void __init
 +screen_info_setup(void)
 +{
 +      unsigned int orig_x, orig_y, num_cols, num_rows, font_height;
 +
 +      memset(&screen_info, 0, sizeof(screen_info));
 +
 +      if (!ia64_boot_param->console_info.num_rows ||
 +          !ia64_boot_param->console_info.num_cols) {
 +              printk(KERN_WARNING "invalid screen-info, guessing 80x25\n");
 +              orig_x = 0;
 +              orig_y = 0;
 +              num_cols = 80;
 +              num_rows = 25;
 +              font_height = 16;
 +      } else {
 +              orig_x = ia64_boot_param->console_info.orig_x;
 +              orig_y = ia64_boot_param->console_info.orig_y;
 +              num_cols = ia64_boot_param->console_info.num_cols;
 +              num_rows = ia64_boot_param->console_info.num_rows;
 +              font_height = 400 / num_rows;
 +      }
  
 -      return (earlycons) ? 0 : -1;
 +      screen_info.orig_x = orig_x;
 +      screen_info.orig_y = orig_y;
 +      screen_info.orig_video_cols  = num_cols;
 +      screen_info.orig_video_lines = num_rows;
 +      screen_info.orig_video_points = font_height;
 +      screen_info.orig_video_mode = 3;        /* XXX fake */
 +      screen_info.orig_video_isVGA = 1;       /* XXX fake */
 +      screen_info.orig_video_ega_bx = 3;      /* XXX fake */
  }
  
  static inline void
@@@ -560,25 -536,35 +560,25 @@@ setup_arch (char **cmdline_p
        efi_init();
        io_port_init();
  
 -#ifdef CONFIG_IA64_GENERIC
 -      /* machvec needs to be parsed from the command line
 -       * before parse_early_param() is called to ensure
 -       * that ia64_mv is initialised before any command line
 -       * settings may cause console setup to occur
 -       */
 -      machvec_init_from_cmdline(*cmdline_p);
 -#endif
 -
 +      uv_probe_system_type();
        parse_early_param();
  
        if (early_console_setup(*cmdline_p) == 0)
                mark_bsp_online();
  
 -#ifdef CONFIG_ACPI
        /* Initialize the ACPI boot-time table parser */
        acpi_table_init();
        early_acpi_boot_init();
 -# ifdef CONFIG_ACPI_NUMA
 +#ifdef CONFIG_ACPI_NUMA
        acpi_numa_init();
        acpi_numa_fixup();
 -#  ifdef CONFIG_ACPI_HOTPLUG_CPU
 +#ifdef CONFIG_ACPI_HOTPLUG_CPU
        prefill_possible_map();
 -#  endif
 +#endif
        per_cpu_scan_finalize((cpumask_weight(&early_cpu_possible_map) == 0 ?
                32 : cpumask_weight(&early_cpu_possible_map)),
                additional_cpus > 0 ? additional_cpus : 0);
 -# endif
 -#endif /* CONFIG_APCI_BOOT */
 +#endif /* CONFIG_ACPI_NUMA */
  
  #ifdef CONFIG_SMP
        smp_build_cpu_map();
        find_memory();
  
        /* process SAL system table: */
 -      ia64_sal_init(__va(efi.sal_systab));
 +      ia64_sal_init(__va(sal_systab_phys));
  
  #ifdef CONFIG_ITANIUM
        ia64_patch_rse((u64) __start___rse_patchlist, (u64) __end___rse_patchlist);
        if (!nomca)
                ia64_mca_init();
  
 -      platform_setup(cmdline_p);
 -#ifndef CONFIG_IA64_HP_SIM
 -      check_sal_cache_flush();
 +      /*
 +       * Default to /dev/sda2.  This assumes that the EFI partition
 +       * is physical disk 1 partition 1 and the Linux root disk is
 +       * physical disk 1 partition 2.
 +       */
 +      ROOT_DEV = Root_SDA2;           /* default to second partition on first drive */
 +
 +      if (is_uv_system())
 +              uv_setup(cmdline_p);
 +#ifdef CONFIG_SMP
 +      else
 +              init_smp_config();
  #endif
 +
 +      screen_info_setup();
        paging_init();
  
        clear_sched_clock_stable();
@@@ -1071,6 -1046,7 +1071,6 @@@ cpu_init (void
                ia64_patch_phys_stack_reg(num_phys_stacked*8 + 8);
                max_num_phys_stacked = num_phys_stacked;
        }
 -      platform_cpu_init();
  }
  
  void __init
index a6ac3712db8bcc4afbe1e61273121e289b9627a1,527bc16992e12fec0c63918e5e20932f376ca9a1..4bbccb9d16dcd02fb3fecdf82fcc0cdce65a35df
@@@ -510,10 -510,9 +510,9 @@@ static __init unsigned long check_iommu
        iommu_size -= round_up(a, PMD_PAGE_SIZE) - a;
  
        if (iommu_size < 64*1024*1024) {
-               pr_warning(
-                       "PCI-DMA: Warning: Small IOMMU %luMB."
+               pr_warn("PCI-DMA: Warning: Small IOMMU %luMB."
                        " Consider increasing the AGP aperture in BIOS\n",
-                               iommu_size >> 20);
+                       iommu_size >> 20);
        }
  
        return iommu_size;
@@@ -665,8 -664,7 +664,7 @@@ static __init int init_amd_gatt(struct 
  
   nommu:
        /* Should not happen anymore */
-       pr_warning("PCI-DMA: More than 4GB of RAM and no IOMMU\n"
-              "falling back to iommu=soft.\n");
+       pr_warn("PCI-DMA: More than 4GB of RAM and no IOMMU - falling back to iommu=soft.\n");
        return -1;
  }
  
@@@ -677,10 -675,7 +675,10 @@@ static const struct dma_map_ops gart_dm
        .unmap_page                     = gart_unmap_page,
        .alloc                          = gart_alloc_coherent,
        .free                           = gart_free_coherent,
 +      .mmap                           = dma_common_mmap,
 +      .get_sgtable                    = dma_common_get_sgtable,
        .dma_supported                  = dma_direct_supported,
 +      .get_required_mask              = dma_direct_get_required_mask,
  };
  
  static void gart_iommu_shutdown(void)
@@@ -733,8 -728,8 +731,8 @@@ int __init gart_iommu_init(void
            !gart_iommu_aperture ||
            (no_agp && init_amd_gatt(&info) < 0)) {
                if (max_pfn > MAX_DMA32_PFN) {
-                       pr_warning("More than 4GB of memory but GART IOMMU not available.\n");
-                       pr_warning("falling back to iommu=soft.\n");
+                       pr_warn("More than 4GB of memory but GART IOMMU not available.\n");
+                       pr_warn("falling back to iommu=soft.\n");
                }
                return 0;
        }
index 2b0faf86da1b7327ad4b2bdb4548ef823c0efd30,5be2c3bc9d9325cd008acd90e0fc2723420cc0cb..05feaec5d3d7811d6c818ada8e9d7b3bc38479c4
@@@ -65,10 -65,10 +65,10 @@@ unsigned int num_processors
  unsigned disabled_cpus;
  
  /* Processor that is doing the boot up */
 -unsigned int boot_cpu_physical_apicid = -1U;
 +unsigned int boot_cpu_physical_apicid __ro_after_init = -1U;
  EXPORT_SYMBOL_GPL(boot_cpu_physical_apicid);
  
 -u8 boot_cpu_apic_version;
 +u8 boot_cpu_apic_version __ro_after_init;
  
  /*
   * The highest APIC ID seen during enumeration.
@@@ -85,13 -85,13 +85,13 @@@ physid_mask_t phys_cpu_present_map
   * disable_cpu_apicid=<int>, mostly used for the kdump 2nd kernel to
   * avoid undefined behaviour caused by sending INIT from AP to BSP.
   */
 -static unsigned int disabled_cpu_apicid __read_mostly = BAD_APICID;
 +static unsigned int disabled_cpu_apicid __ro_after_init = BAD_APICID;
  
  /*
   * This variable controls which CPUs receive external NMIs.  By default,
   * external NMIs are delivered only to the BSP.
   */
 -static int apic_extnmi = APIC_EXTNMI_BSP;
 +static int apic_extnmi __ro_after_init = APIC_EXTNMI_BSP;
  
  /*
   * Map cpu index to physical APIC ID
@@@ -114,7 -114,7 +114,7 @@@ EXPORT_EARLY_PER_CPU_SYMBOL(x86_cpu_to_
  DEFINE_EARLY_PER_CPU_READ_MOSTLY(int, x86_cpu_to_logical_apicid, BAD_APICID);
  
  /* Local APIC was disabled by the BIOS and enabled by the kernel */
 -static int enabled_via_apicbase;
 +static int enabled_via_apicbase __ro_after_init;
  
  /*
   * Handle interrupt mode configuration register (IMCR).
@@@ -172,23 -172,23 +172,23 @@@ static __init int setup_apicpmtimer(cha
  __setup("apicpmtimer", setup_apicpmtimer);
  #endif
  
 -unsigned long mp_lapic_addr;
 -int disable_apic;
 +unsigned long mp_lapic_addr __ro_after_init;
 +int disable_apic __ro_after_init;
  /* Disable local APIC timer from the kernel commandline or via dmi quirk */
  static int disable_apic_timer __initdata;
  /* Local APIC timer works in C2 */
 -int local_apic_timer_c2_ok;
 +int local_apic_timer_c2_ok __ro_after_init;
  EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok);
  
  /*
   * Debug level, exported for io_apic.c
   */
 -unsigned int apic_verbosity;
 +int apic_verbosity __ro_after_init;
  
 -int pic_mode;
 +int pic_mode __ro_after_init;
  
  /* Have we found an MP table */
 -int smp_found_config;
 +int smp_found_config __ro_after_init;
  
  static struct resource lapic_resource = {
        .name = "Local APIC",
@@@ -199,7 -199,7 +199,7 @@@ unsigned int lapic_timer_period = 0
  
  static void apic_pm_activate(void);
  
 -static unsigned long apic_phys;
 +static unsigned long apic_phys __ro_after_init;
  
  /*
   * Get the LAPIC version
@@@ -590,21 -590,21 +590,21 @@@ static u32 skx_deadline_rev(void
  static const struct x86_cpu_id deadline_match[] = {
        DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_HASWELL_X,        hsx_deadline_rev),
        DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_X,      0x0b000020),
 -      DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_BROADWELL_XEON_D, bdx_deadline_rev),
 +      DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_BROADWELL_D,      bdx_deadline_rev),
        DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_SKYLAKE_X,        skx_deadline_rev),
  
 -      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_CORE,     0x22),
 -      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_ULT,      0x20),
 -      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_GT3E,     0x17),
 +      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL,          0x22),
 +      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_L,        0x20),
 +      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_G,        0x17),
  
 -      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_CORE,   0x25),
 -      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_GT3E,   0x17),
 +      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL,        0x25),
 +      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_G,      0x17),
  
 -      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_SKYLAKE_MOBILE,   0xb2),
 -      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_SKYLAKE_DESKTOP,  0xb2),
 +      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_SKYLAKE_L,        0xb2),
 +      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_SKYLAKE,          0xb2),
  
 -      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_KABYLAKE_MOBILE,  0x52),
 -      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_KABYLAKE_DESKTOP, 0x52),
 +      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_KABYLAKE_L,       0x52),
 +      DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_KABYLAKE,         0x52),
  
        {},
  };
@@@ -722,7 -722,7 +722,7 @@@ static __initdata unsigned long lapic_c
  static __initdata unsigned long lapic_cal_j1, lapic_cal_j2;
  
  /*
 - * Temporary interrupt handler.
 + * Temporary interrupt handler and polled calibration function.
   */
  static void __init lapic_cal_handler(struct clock_event_device *dev)
  {
@@@ -780,8 -780,8 +780,8 @@@ calibrate_by_pmtimer(long deltapm, lon
  
        res = (((u64)deltapm) *  mult) >> 22;
        do_div(res, 1000000);
-       pr_warning("APIC calibration not consistent "
-                  "with PM-Timer: %ldms instead of 100ms\n",(long)res);
+       pr_warn("APIC calibration not consistent "
+               "with PM-Timer: %ldms instead of 100ms\n", (long)res);
  
        /* Correct the lapic counter value */
        res = (((u64)(*delta)) * pm_100ms);
@@@ -834,10 -834,6 +834,10 @@@ bool __init apic_needs_pit(void
        if (!boot_cpu_has(X86_FEATURE_APIC))
                return true;
  
 +      /* Virt guests may lack ARAT, but still have DEADLINE */
 +      if (!boot_cpu_has(X86_FEATURE_ARAT))
 +              return true;
 +
        /* Deadline timer is based on TSC so no further PIT action required */
        if (boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER))
                return false;
  static int __init calibrate_APIC_clock(void)
  {
        struct clock_event_device *levt = this_cpu_ptr(&lapic_events);
 -      void (*real_handler)(struct clock_event_device *dev);
 +      u64 tsc_perj = 0, tsc_start = 0;
 +      unsigned long jif_start;
        unsigned long deltaj;
        long delta, deltatsc;
        int pm_referenced = 0;
        apic_printk(APIC_VERBOSE, "Using local APIC timer interrupts.\n"
                    "calibrating APIC timer ...\n");
  
 +      /*
 +       * There are platforms w/o global clockevent devices. Instead of
 +       * making the calibration conditional on that, use a polling based
 +       * approach everywhere.
 +       */
        local_irq_disable();
  
 -      /* Replace the global interrupt handler */
 -      real_handler = global_clock_event->event_handler;
 -      global_clock_event->event_handler = lapic_cal_handler;
 -
        /*
         * Setup the APIC counter to maximum. There is no way the lapic
         * can underflow in the 100ms detection time frame
         */
        __setup_APIC_LVTT(0xffffffff, 0, 0);
  
 -      /* Let the interrupts run */
 +      /*
 +       * Methods to terminate the calibration loop:
 +       *  1) Global clockevent if available (jiffies)
 +       *  2) TSC if available and frequency is known
 +       */
 +      jif_start = READ_ONCE(jiffies);
 +
 +      if (tsc_khz) {
 +              tsc_start = rdtsc();
 +              tsc_perj = div_u64((u64)tsc_khz * 1000, HZ);
 +      }
 +
 +      /*
 +       * Enable interrupts so the tick can fire, if a global
 +       * clockevent device is available
 +       */
        local_irq_enable();
  
 -      while (lapic_cal_loops <= LAPIC_CAL_LOOPS)
 -              cpu_relax();
 +      while (lapic_cal_loops <= LAPIC_CAL_LOOPS) {
 +              /* Wait for a tick to elapse */
 +              while (1) {
 +                      if (tsc_khz) {
 +                              u64 tsc_now = rdtsc();
 +                              if ((tsc_now - tsc_start) >= tsc_perj) {
 +                                      tsc_start += tsc_perj;
 +                                      break;
 +                              }
 +                      } else {
 +                              unsigned long jif_now = READ_ONCE(jiffies);
  
 -      local_irq_disable();
 +                              if (time_after(jif_now, jif_start)) {
 +                                      jif_start = jif_now;
 +                                      break;
 +                              }
 +                      }
 +                      cpu_relax();
 +              }
  
 -      /* Restore the real event handler */
 -      global_clock_event->event_handler = real_handler;
 +              /* Invoke the calibration routine */
 +              local_irq_disable();
 +              lapic_cal_handler(NULL);
 +              local_irq_enable();
 +      }
 +
 +      local_irq_disable();
  
        /* Build delta t1-t2 as apic timer counts down */
        delta = lapic_cal_t1 - lapic_cal_t2;
         */
        if (lapic_timer_period < (1000000 / HZ)) {
                local_irq_enable();
-               pr_warning("APIC frequency too slow, disabling apic timer\n");
+               pr_warn("APIC frequency too slow, disabling apic timer\n");
                return -1;
        }
  
        levt->features &= ~CLOCK_EVT_FEAT_DUMMY;
  
        /*
 -       * PM timer calibration failed or not turned on
 -       * so lets try APIC timer based calibration
 +       * PM timer calibration failed or not turned on so lets try APIC
 +       * timer based calibration, if a global clockevent device is
 +       * available.
         */
 -      if (!pm_referenced) {
 +      if (!pm_referenced && global_clock_event) {
                apic_printk(APIC_VERBOSE, "... verify APIC timer\n");
  
                /*
        local_irq_enable();
  
        if (levt->features & CLOCK_EVT_FEAT_DUMMY) {
-               pr_warning("APIC timer disabled due to verification failure\n");
+               pr_warn("APIC timer disabled due to verification failure\n");
                return -1;
        }
  
@@@ -1095,8 -1053,8 +1095,8 @@@ static void local_apic_timer_interrupt(
         * spurious.
         */
        if (!evt->event_handler) {
-               pr_warning("Spurious LAPIC timer interrupt on cpu %d\n",
-                          smp_processor_id());
+               pr_warn("Spurious LAPIC timer interrupt on cpu %d\n",
+                       smp_processor_id());
                /* Switch it off */
                lapic_timer_shutdown(evt);
                return;
@@@ -1224,38 -1182,25 +1224,38 @@@ void clear_local_APIC(void
  }
  
  /**
 - * disable_local_APIC - clear and disable the local APIC
 + * apic_soft_disable - Clears and software disables the local APIC on hotplug
 + *
 + * Contrary to disable_local_APIC() this does not touch the enable bit in
 + * MSR_IA32_APICBASE. Clearing that bit on systems based on the 3 wire APIC
 + * bus would require a hardware reset as the APIC would lose track of bus
 + * arbitration. On systems with FSB delivery APICBASE could be disabled,
 + * but it has to be guaranteed that no interrupt is sent to the APIC while
 + * in that state and it's not clear from the SDM whether it still responds
 + * to INIT/SIPI messages. Stay on the safe side and use software disable.
   */
 -void disable_local_APIC(void)
 +void apic_soft_disable(void)
  {
 -      unsigned int value;
 -
 -      /* APIC hasn't been mapped yet */
 -      if (!x2apic_mode && !apic_phys)
 -              return;
 +      u32 value;
  
        clear_local_APIC();
  
 -      /*
 -       * Disable APIC (implies clearing of registers
 -       * for 82489DX!).
 -       */
 +      /* Soft disable APIC (implies clearing of registers for 82489DX!). */
        value = apic_read(APIC_SPIV);
        value &= ~APIC_SPIV_APIC_ENABLED;
        apic_write(APIC_SPIV, value);
 +}
 +
 +/**
 + * disable_local_APIC - clear and disable the local APIC
 + */
 +void disable_local_APIC(void)
 +{
 +      /* APIC hasn't been mapped yet */
 +      if (!x2apic_mode && !apic_phys)
 +              return;
 +
 +      apic_soft_disable();
  
  #ifdef CONFIG_X86_32
        /*
@@@ -1320,7 -1265,7 +1320,7 @@@ void __init sync_Arb_IDs(void
                        APIC_INT_LEVELTRIG | APIC_DM_INIT);
  }
  
 -enum apic_intr_mode_id apic_intr_mode;
 +enum apic_intr_mode_id apic_intr_mode __ro_after_init;
  
  static int __init apic_intr_mode_select(void)
  {
@@@ -1508,72 -1453,54 +1508,72 @@@ static void lapic_setup_esr(void
                        oldvalue, value);
  }
  
 -static void apic_pending_intr_clear(void)
 +#define APIC_IR_REGS          APIC_ISR_NR
 +#define APIC_IR_BITS          (APIC_IR_REGS * 32)
 +#define APIC_IR_MAPSIZE               (APIC_IR_BITS / BITS_PER_LONG)
 +
 +union apic_ir {
 +      unsigned long   map[APIC_IR_MAPSIZE];
 +      u32             regs[APIC_IR_REGS];
 +};
 +
 +static bool apic_check_and_ack(union apic_ir *irr, union apic_ir *isr)
  {
 -      long long max_loops = cpu_khz ? cpu_khz : 1000000;
 -      unsigned long long tsc = 0, ntsc;
 -      unsigned int queued;
 -      unsigned long value;
 -      int i, j, acked = 0;
 +      int i, bit;
 +
 +      /* Read the IRRs */
 +      for (i = 0; i < APIC_IR_REGS; i++)
 +              irr->regs[i] = apic_read(APIC_IRR + i * 0x10);
 +
 +      /* Read the ISRs */
 +      for (i = 0; i < APIC_IR_REGS; i++)
 +              isr->regs[i] = apic_read(APIC_ISR + i * 0x10);
  
 -      if (boot_cpu_has(X86_FEATURE_TSC))
 -              tsc = rdtsc();
        /*
 -       * After a crash, we no longer service the interrupts and a pending
 -       * interrupt from previous kernel might still have ISR bit set.
 -       *
 -       * Most probably by now CPU has serviced that pending interrupt and
 -       * it might not have done the ack_APIC_irq() because it thought,
 -       * interrupt came from i8259 as ExtInt. LAPIC did not get EOI so it
 -       * does not clear the ISR bit and cpu thinks it has already serivced
 -       * the interrupt. Hence a vector might get locked. It was noticed
 -       * for timer irq (vector 0x31). Issue an extra EOI to clear ISR.
 +       * If the ISR map is not empty. ACK the APIC and run another round
 +       * to verify whether a pending IRR has been unblocked and turned
 +       * into a ISR.
         */
 -      do {
 -              queued = 0;
 -              for (i = APIC_ISR_NR - 1; i >= 0; i--)
 -                      queued |= apic_read(APIC_IRR + i*0x10);
 -
 -              for (i = APIC_ISR_NR - 1; i >= 0; i--) {
 -                      value = apic_read(APIC_ISR + i*0x10);
 -                      for_each_set_bit(j, &value, 32) {
 -                              ack_APIC_irq();
 -                              acked++;
 -                      }
 -              }
 -              if (acked > 256) {
 -                      pr_err("LAPIC pending interrupts after %d EOI\n", acked);
 -                      break;
 -              }
 -              if (queued) {
 -                      if (boot_cpu_has(X86_FEATURE_TSC) && cpu_khz) {
 -                              ntsc = rdtsc();
 -                              max_loops = (long long)cpu_khz << 10;
 -                              max_loops -= ntsc - tsc;
 -                      } else {
 -                              max_loops--;
 -                      }
 -              }
 -      } while (queued && max_loops > 0);
 -      WARN_ON(max_loops <= 0);
 +      if (!bitmap_empty(isr->map, APIC_IR_BITS)) {
 +              /*
 +               * There can be multiple ISR bits set when a high priority
 +               * interrupt preempted a lower priority one. Issue an ACK
 +               * per set bit.
 +               */
 +              for_each_set_bit(bit, isr->map, APIC_IR_BITS)
 +                      ack_APIC_irq();
 +              return true;
 +      }
 +
 +      return !bitmap_empty(irr->map, APIC_IR_BITS);
 +}
 +
 +/*
 + * After a crash, we no longer service the interrupts and a pending
 + * interrupt from previous kernel might still have ISR bit set.
 + *
 + * Most probably by now the CPU has serviced that pending interrupt and it
 + * might not have done the ack_APIC_irq() because it thought, interrupt
 + * came from i8259 as ExtInt. LAPIC did not get EOI so it does not clear
 + * the ISR bit and cpu thinks it has already serivced the interrupt. Hence
 + * a vector might get locked. It was noticed for timer irq (vector
 + * 0x31). Issue an extra EOI to clear ISR.
 + *
 + * If there are pending IRR bits they turn into ISR bits after a higher
 + * priority ISR bit has been acked.
 + */
 +static void apic_pending_intr_clear(void)
 +{
 +      union apic_ir irr, isr;
 +      unsigned int i;
 +
 +      /* 512 loops are way oversized and give the APIC a chance to obey. */
 +      for (i = 0; i < 512; i++) {
 +              if (!apic_check_and_ack(&irr, &isr))
 +                      return;
 +      }
 +      /* Dump the IRR/ISR content if that failed */
 +      pr_warn("APIC: Stale IRR: %256pb ISR: %256pb\n", irr.map, isr.map);
  }
  
  /**
@@@ -1586,20 -1513,16 +1586,20 @@@ static void setup_local_APIC(void
  {
        int cpu = smp_processor_id();
        unsigned int value;
 -#ifdef CONFIG_X86_32
 -      int logical_apicid, ldr_apicid;
 -#endif
 -
  
        if (disable_apic) {
                disable_ioapic_support();
                return;
        }
  
 +      /*
 +       * If this comes from kexec/kcrash the APIC might be enabled in
 +       * SPIV. Soft disable it before doing further initialization.
 +       */
 +      value = apic_read(APIC_SPIV);
 +      value &= ~APIC_SPIV_APIC_ENABLED;
 +      apic_write(APIC_SPIV, value);
 +
  #ifdef CONFIG_X86_32
        /* Pound the ESR really hard over the head with a big hammer - mbligh */
        if (lapic_is_integrated() && apic->disable_esr) {
                apic_write(APIC_ESR, 0);
        }
  #endif
 -      perf_events_lapic_init();
 -
        /*
         * Double-check whether this APIC is really registered.
         * This is meaningless in clustered apic mode, so we skip it.
        apic->init_apic_ldr();
  
  #ifdef CONFIG_X86_32
 -      /*
 -       * APIC LDR is initialized.  If logical_apicid mapping was
 -       * initialized during get_smp_config(), make sure it matches the
 -       * actual value.
 -       */
 -      logical_apicid = early_per_cpu(x86_cpu_to_logical_apicid, cpu);
 -      ldr_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR));
 -      WARN_ON(logical_apicid != BAD_APICID && logical_apicid != ldr_apicid);
 -      /* always use the value from LDR */
 -      early_per_cpu(x86_cpu_to_logical_apicid, cpu) = ldr_apicid;
 +      if (apic->dest_logical) {
 +              int logical_apicid, ldr_apicid;
 +
 +              /*
 +               * APIC LDR is initialized.  If logical_apicid mapping was
 +               * initialized during get_smp_config(), make sure it matches
 +               * the actual value.
 +               */
 +              logical_apicid = early_per_cpu(x86_cpu_to_logical_apicid, cpu);
 +              ldr_apicid = GET_APIC_LOGICAL_ID(apic_read(APIC_LDR));
 +              if (logical_apicid != BAD_APICID)
 +                      WARN_ON(logical_apicid != ldr_apicid);
 +              /* Always use the value from LDR. */
 +              early_per_cpu(x86_cpu_to_logical_apicid, cpu) = ldr_apicid;
 +      }
  #endif
  
        /*
 -       * Set Task Priority to 'accept all'. We never change this
 -       * later on.
 +       * Set Task Priority to 'accept all except vectors 0-31'.  An APIC
 +       * vector in the 16-31 range could be delivered if TPR == 0, but we
 +       * would think it's an exception and terrible things will happen.  We
 +       * never change this later on.
         */
        value = apic_read(APIC_TASKPRI);
        value &= ~APIC_TPRI_MASK;
 +      value |= 0x10;
        apic_write(APIC_TASKPRI, value);
  
 +      /* Clear eventually stale ISR/IRR bits */
        apic_pending_intr_clear();
  
        /*
        value |= SPURIOUS_APIC_VECTOR;
        apic_write(APIC_SPIV, value);
  
 +      perf_events_lapic_init();
 +
        /*
         * Set up LVT0, LVT1:
         *
@@@ -1811,11 -1725,11 +1811,11 @@@ static int __init setup_nox2apic(char *
                int apicid = native_apic_msr_read(APIC_ID);
  
                if (apicid >= 255) {
-                       pr_warning("Apicid: %08x, cannot enforce nox2apic\n",
-                                  apicid);
+                       pr_warn("Apicid: %08x, cannot enforce nox2apic\n",
+                               apicid);
                        return 0;
                }
-               pr_warning("x2apic already enabled.\n");
+               pr_warn("x2apic already enabled.\n");
                __x2apic_disable();
        }
        setup_clear_cpu_cap(X86_FEATURE_X2APIC);
@@@ -1983,7 -1897,7 +1983,7 @@@ static int __init apic_verify(void
         */
        features = cpuid_edx(1);
        if (!(features & (1 << X86_FEATURE_APIC))) {
-               pr_warning("Could not enable APIC!\n");
+               pr_warn("Could not enable APIC!\n");
                return -1;
        }
        set_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC);
@@@ -2410,9 -2324,8 +2410,8 @@@ int generic_processor_info(int apicid, 
            disabled_cpu_apicid == apicid) {
                int thiscpu = num_processors + disabled_cpus;
  
-               pr_warning("APIC: Disabling requested cpu."
-                          " Processor %d/0x%x ignored.\n",
-                          thiscpu, apicid);
+               pr_warn("APIC: Disabling requested cpu."
+                       " Processor %d/0x%x ignored.\n", thiscpu, apicid);
  
                disabled_cpus++;
                return -ENODEV;
            apicid != boot_cpu_physical_apicid) {
                int thiscpu = max + disabled_cpus - 1;
  
-               pr_warning(
-                       "APIC: NR_CPUS/possible_cpus limit of %i almost"
+               pr_warn("APIC: NR_CPUS/possible_cpus limit of %i almost"
                        " reached. Keeping one slot for boot cpu."
                        "  Processor %d/0x%x ignored.\n", max, thiscpu, apicid);
  
        if (num_processors >= nr_cpu_ids) {
                int thiscpu = max + disabled_cpus;
  
-               pr_warning("APIC: NR_CPUS/possible_cpus limit of %i "
-                          "reached. Processor %d/0x%x ignored.\n",
-                          max, thiscpu, apicid);
+               pr_warn("APIC: NR_CPUS/possible_cpus limit of %i reached. "
+                       "Processor %d/0x%x ignored.\n", max, thiscpu, apicid);
  
                disabled_cpus++;
                return -EINVAL;
         * Validate version
         */
        if (version == 0x0) {
-               pr_warning("BIOS bug: APIC version is 0 for CPU %d/0x%x, fixing up to 0x10\n",
-                          cpu, apicid);
+               pr_warn("BIOS bug: APIC version is 0 for CPU %d/0x%x, fixing up to 0x10\n",
+                       cpu, apicid);
                version = 0x10;
        }
  
        if (version != boot_cpu_apic_version) {
-               pr_warning("BIOS bug: APIC version mismatch, boot CPU: %x, CPU %d: version %x\n",
+               pr_warn("BIOS bug: APIC version mismatch, boot CPU: %x, CPU %d: version %x\n",
                        boot_cpu_apic_version, cpu, version);
        }
  
@@@ -2845,7 -2756,7 +2842,7 @@@ static int __init apic_set_verbosity(ch
                apic_verbosity = APIC_VERBOSE;
  #ifdef CONFIG_X86_64
        else {
-               pr_warning("APIC Verbosity level %s not recognised"
+               pr_warn("APIC Verbosity level %s not recognised"
                        " use apic=verbose or apic=debug\n", arg);
                return -EINVAL;
        }
diff --combined arch/x86/kernel/umip.c
index 548fefed71eecdcfcd2437341ae7f7f4dfa7197e,de340e47f82d8ec333144dec73e78c405c3f9a71..b4a3048931898b6fd89e83530128f4ffadb01cba
@@@ -19,7 -19,7 +19,7 @@@
  /** DOC: Emulation for User-Mode Instruction Prevention (UMIP)
   *
   * The feature User-Mode Instruction Prevention present in recent Intel
 - * processor prevents a group of instructions (sgdt, sidt, sldt, smsw, and str)
 + * processor prevents a group of instructions (SGDT, SIDT, SLDT, SMSW and STR)
   * from being executed with CPL > 0. Otherwise, a general protection fault is
   * issued.
   *
@@@ -36,8 -36,8 +36,8 @@@
   * DOSEMU2) rely on this subset of instructions to function.
   *
   * The instructions protected by UMIP can be split in two groups. Those which
 - * return a kernel memory address (sgdt and sidt) and those which return a
 - * value (sldt, str and smsw).
 + * return a kernel memory address (SGDT and SIDT) and those which return a
 + * value (SLDT, STR and SMSW).
   *
   * For the instructions that return a kernel memory address, applications
   * such as WineHQ rely on the result being located in the kernel memory space,
   * value that, lies close to the top of the kernel memory. The limit for the GDT
   * and the IDT are set to zero.
   *
 - * Given that sldt and str are not commonly used in programs that run on WineHQ
 + * Given that SLDT and STR are not commonly used in programs that run on WineHQ
   * or DOSEMU2, they are not emulated.
   *
   * The instruction smsw is emulated to return the value that the register CR0
   * has at boot time as set in the head_32.
   *
 - * Also, emulation is provided only for 32-bit processes; 64-bit processes
 - * that attempt to use the instructions that UMIP protects will receive the
 - * SIGSEGV signal issued as a consequence of the general protection fault.
 + * Emulation is provided for both 32-bit and 64-bit processes.
   *
   * Care is taken to appropriately emulate the results when segmentation is
   * used. That is, rather than relying on USER_DS and USER_CS, the function
   * application uses a local descriptor table.
   */
  
 -#define UMIP_DUMMY_GDT_BASE 0xfffe0000
 -#define UMIP_DUMMY_IDT_BASE 0xffff0000
 +#define UMIP_DUMMY_GDT_BASE 0xfffffffffffe0000ULL
 +#define UMIP_DUMMY_IDT_BASE 0xffffffffffff0000ULL
  
  /*
   * The SGDT and SIDT instructions store the contents of the global descriptor
   * table and interrupt table registers, respectively. The destination is a
   * memory operand of X+2 bytes. X bytes are used to store the base address of
 - * the table and 2 bytes are used to store the limit. In 32-bit processes, the
 - * only processes for which emulation is provided, X has a value of 4.
 + * the table and 2 bytes are used to store the limit. In 32-bit processes X
 + * has a value of 4, in 64-bit processes X has a value of 8.
   */
 -#define UMIP_GDT_IDT_BASE_SIZE 4
 +#define UMIP_GDT_IDT_BASE_SIZE_64BIT 8
 +#define UMIP_GDT_IDT_BASE_SIZE_32BIT 4
  #define UMIP_GDT_IDT_LIMIT_SIZE 2
  
  #define       UMIP_INST_SGDT  0       /* 0F 01 /0 */
@@@ -91,7 -92,7 +91,7 @@@ const char * const umip_insns[5] = 
  
  #define umip_pr_err(regs, fmt, ...) \
        umip_printk(regs, KERN_ERR, fmt, ##__VA_ARGS__)
- #define umip_pr_warning(regs, fmt, ...) \
+ #define umip_pr_warn(regs, fmt, ...) \
        umip_printk(regs, KERN_WARNING, fmt,  ##__VA_ARGS__)
  
  /**
@@@ -188,7 -189,6 +188,7 @@@ static int identify_insn(struct insn *i
   * @umip_inst:        A constant indicating the instruction to emulate
   * @data:     Buffer into which the dummy result is stored
   * @data_size:        Size of the emulated result
 + * @x86_64:   true if process is 64-bit, false otherwise
   *
   * Emulate an instruction protected by UMIP and provide a dummy result. The
   * result of the emulation is saved in @data. The size of the results depends
   * 0 on success, -EINVAL on error while emulating.
   */
  static int emulate_umip_insn(struct insn *insn, int umip_inst,
 -                           unsigned char *data, int *data_size)
 +                           unsigned char *data, int *data_size, bool x86_64)
  {
 -      unsigned long dummy_base_addr, dummy_value;
 -      unsigned short dummy_limit = 0;
 -
        if (!data || !data_size || !insn)
                return -EINVAL;
        /*
         * is always returned irrespective of the operand size.
         */
        if (umip_inst == UMIP_INST_SGDT || umip_inst == UMIP_INST_SIDT) {
 +              u64 dummy_base_addr;
 +              u16 dummy_limit = 0;
 +
                /* SGDT and SIDT do not use registers operands. */
                if (X86_MODRM_MOD(insn->modrm.value) == 3)
                        return -EINVAL;
                else
                        dummy_base_addr = UMIP_DUMMY_IDT_BASE;
  
 -              *data_size = UMIP_GDT_IDT_LIMIT_SIZE + UMIP_GDT_IDT_BASE_SIZE;
 +              /*
 +               * 64-bit processes use the entire dummy base address.
 +               * 32-bit processes use the lower 32 bits of the base address.
 +               * dummy_base_addr is always 64 bits, but we memcpy the correct
 +               * number of bytes from it to the destination.
 +               */
 +              if (x86_64)
 +                      *data_size = UMIP_GDT_IDT_BASE_SIZE_64BIT;
 +              else
 +                      *data_size = UMIP_GDT_IDT_BASE_SIZE_32BIT;
 +
 +              memcpy(data + 2, &dummy_base_addr, *data_size);
  
 -              memcpy(data + 2, &dummy_base_addr, UMIP_GDT_IDT_BASE_SIZE);
 +              *data_size += UMIP_GDT_IDT_LIMIT_SIZE;
                memcpy(data, &dummy_limit, UMIP_GDT_IDT_LIMIT_SIZE);
  
        } else if (umip_inst == UMIP_INST_SMSW) {
 -              dummy_value = CR0_STATE;
 +              unsigned long dummy_value = CR0_STATE;
  
                /*
                 * Even though the CR0 register has 4 bytes, the number
@@@ -301,10 -290,11 +301,10 @@@ static void force_sig_info_umip_fault(v
   * fixup_umip_exception() - Fixup a general protection fault caused by UMIP
   * @regs:     Registers as saved when entering the #GP handler
   *
 - * The instructions sgdt, sidt, str, smsw, sldt cause a general protection
 - * fault if executed with CPL > 0 (i.e., from user space). If the offending
 - * user-space process is not in long mode, this function fixes the exception
 - * up and provides dummy results for sgdt, sidt and smsw; str and sldt are not
 - * fixed up. Also long mode user-space processes are not fixed up.
 + * The instructions SGDT, SIDT, STR, SMSW and SLDT cause a general protection
 + * fault if executed with CPL > 0 (i.e., from user space). This function fixes
 + * the exception up and provides dummy results for SGDT, SIDT and SMSW; STR
 + * and SLDT are not fixed up.
   *
   * If operands are memory addresses, results are copied to user-space memory as
   * indicated by the instruction pointed by eIP using the registers indicated in
@@@ -380,17 -370,16 +380,17 @@@ bool fixup_umip_exception(struct pt_reg
        if (umip_inst < 0)
                return false;
  
-       umip_pr_warning(regs, "%s instruction cannot be used by applications.\n",
+       umip_pr_warn(regs, "%s instruction cannot be used by applications.\n",
                        umip_insns[umip_inst]);
  
 -      /* Do not emulate SLDT, STR or user long mode processes. */
 -      if (umip_inst == UMIP_INST_STR || umip_inst == UMIP_INST_SLDT || user_64bit_mode(regs))
 +      /* Do not emulate (spoof) SLDT or STR. */
 +      if (umip_inst == UMIP_INST_STR || umip_inst == UMIP_INST_SLDT)
                return false;
  
-       umip_pr_warning(regs, "For now, expensive software emulation returns the result.\n");
+       umip_pr_warn(regs, "For now, expensive software emulation returns the result.\n");
  
 -      if (emulate_umip_insn(&insn, umip_inst, dummy_data, &dummy_data_size))
 +      if (emulate_umip_insn(&insn, umip_inst, dummy_data, &dummy_data_size,
 +                            user_64bit_mode(regs)))
                return false;
  
        /*
index a8bd952e136d57a661e745075159d71fc55b14f0,afd828a57c3379399a713830c37979d6ab22960c..92153d054d6c542b06ecdc87a4ec1e3e0b39786e
@@@ -8,7 -8,6 +8,7 @@@
  #include <linux/module.h>
  #include <linux/io.h>
  #include <linux/mmiotrace.h>
 +#include <linux/security.h>
  
  static unsigned long mmio_address;
  module_param_hw(mmio_address, ulong, iomem, 0);
@@@ -116,10 -115,6 +116,10 @@@ static void do_test_bulk_ioremapping(vo
  static int __init init(void)
  {
        unsigned long size = (read_far) ? (8 << 20) : (16 << 10);
 +      int ret = security_locked_down(LOCKDOWN_MMIOTRACE);
 +
 +      if (ret)
 +              return ret;
  
        if (mmio_address == 0) {
                pr_err("you have to use the module argument mmio_address.\n");
                return -ENXIO;
        }
  
-       pr_warning("WARNING: mapping %lu kB @ 0x%08lx in PCI address space, "
-                  "and writing 16 kB of rubbish in there.\n",
-                  size >> 10, mmio_address);
+       pr_warn("WARNING: mapping %lu kB @ 0x%08lx in PCI address space, "
+               "and writing 16 kB of rubbish in there.\n",
+               size >> 10, mmio_address);
        do_test(size);
        do_test_bulk_ioremapping();
        pr_info("All done.\n");
diff --combined drivers/acpi/apei/ghes.c
index 777f6f7122b404a3bbdbd2712e023e1fc6fb2f0a,4ab31f37105b42bf1c970f9ed45a430697feb5ac..8906c80175e6841b2b763934f2a003fbe20fd93b
@@@ -153,7 -153,6 +153,7 @@@ static void ghes_unmap(void __iomem *va
  int ghes_estatus_pool_init(int num_ghes)
  {
        unsigned long addr, len;
 +      int rc;
  
        ghes_estatus_pool = gen_pool_create(GHES_ESTATUS_POOL_MIN_ALLOC_ORDER, -1);
        if (!ghes_estatus_pool)
        ghes_estatus_pool_size_request = PAGE_ALIGN(len);
        addr = (unsigned long)vmalloc(PAGE_ALIGN(len));
        if (!addr)
 -              return -ENOMEM;
 +              goto err_pool_alloc;
  
        /*
         * New allocation must be visible in all pgd before it can be found by
         */
        vmalloc_sync_all();
  
 -      return gen_pool_add(ghes_estatus_pool, addr, PAGE_ALIGN(len), -1);
 +      rc = gen_pool_add(ghes_estatus_pool, addr, PAGE_ALIGN(len), -1);
 +      if (rc)
 +              goto err_pool_add;
 +
 +      return 0;
 +
 +err_pool_add:
 +      vfree((void *)addr);
 +
 +err_pool_alloc:
 +      gen_pool_destroy(ghes_estatus_pool);
 +
 +      return -ENOMEM;
  }
  
  static int map_gen_v2(struct ghes *ghes)
@@@ -235,10 -222,10 +235,10 @@@ static struct ghes *ghes_new(struct acp
                goto err_unmap_read_ack_addr;
        error_block_length = generic->error_block_length;
        if (error_block_length > GHES_ESTATUS_MAX_SIZE) {
-               pr_warning(FW_WARN GHES_PFX
-                          "Error status block length is too long: %u for "
-                          "generic hardware error source: %d.\n",
-                          error_block_length, generic->header.source_id);
+               pr_warn(FW_WARN GHES_PFX
+                       "Error status block length is too long: %u for "
+                       "generic hardware error source: %d.\n",
+                       error_block_length, generic->header.source_id);
                error_block_length = GHES_ESTATUS_MAX_SIZE;
        }
        ghes->estatus = kmalloc(error_block_length, GFP_KERNEL);
@@@ -496,7 -483,7 +496,7 @@@ static void ghes_do_proc(struct ghes *g
        int sev, sec_sev;
        struct acpi_hest_generic_data *gdata;
        guid_t *sec_type;
 -      guid_t *fru_id = &NULL_UUID_LE;
 +      const guid_t *fru_id = &guid_null;
        char *fru_text = "";
  
        sev = ghes_severity(estatus->error_severity);
@@@ -748,8 -735,8 +748,8 @@@ static void ghes_add_timer(struct ghes 
        unsigned long expire;
  
        if (!g->notify.poll_interval) {
-               pr_warning(FW_WARN GHES_PFX "Poll interval is 0 for generic hardware error source: %d, disabled.\n",
-                          g->header.source_id);
+               pr_warn(FW_WARN GHES_PFX "Poll interval is 0 for generic hardware error source: %d, disabled.\n",
+                       g->header.source_id);
                return;
        }
        expire = jiffies + msecs_to_jiffies(g->notify.poll_interval);
@@@ -1155,21 -1142,20 +1155,20 @@@ static int ghes_probe(struct platform_d
                }
                break;
        case ACPI_HEST_NOTIFY_LOCAL:
-               pr_warning(GHES_PFX "Generic hardware error source: %d notified via local interrupt is not supported!\n",
-                          generic->header.source_id);
+               pr_warn(GHES_PFX "Generic hardware error source: %d notified via local interrupt is not supported!\n",
+                       generic->header.source_id);
                goto err;
        default:
-               pr_warning(FW_WARN GHES_PFX "Unknown notification type: %u for generic hardware error source: %d\n",
-                          generic->notify.type, generic->header.source_id);
+               pr_warn(FW_WARN GHES_PFX "Unknown notification type: %u for generic hardware error source: %d\n",
+                       generic->notify.type, generic->header.source_id);
                goto err;
        }
  
        rc = -EIO;
        if (generic->error_block_length <
            sizeof(struct acpi_hest_generic_status)) {
-               pr_warning(FW_BUG GHES_PFX "Invalid error block length: %u for generic hardware error source: %d\n",
-                          generic->error_block_length,
-                          generic->header.source_id);
+               pr_warn(FW_BUG GHES_PFX "Invalid error block length: %u for generic hardware error source: %d\n",
+                       generic->error_block_length, generic->header.source_id);
                goto err;
        }
        ghes = ghes_new(generic);
diff --combined drivers/crypto/n2_core.c
index dc15b06e96ab786a57d37a1f5647c98f6c8b14ca,0fe261bac642e0fa4ff07642ec870e17f34365c8..40b81013213e0b9c08b8f0430cca963adc1d3492
@@@ -17,7 -17,7 +17,7 @@@
  #include <crypto/md5.h>
  #include <crypto/sha.h>
  #include <crypto/aes.h>
 -#include <crypto/des.h>
 +#include <crypto/internal/des.h>
  #include <linux/mutex.h>
  #include <linux/delay.h>
  #include <linux/sched.h>
@@@ -381,8 -381,8 +381,8 @@@ static int n2_hash_cra_init(struct cryp
        fallback_tfm = crypto_alloc_ahash(fallback_driver_name, 0,
                                          CRYPTO_ALG_NEED_FALLBACK);
        if (IS_ERR(fallback_tfm)) {
-               pr_warning("Fallback driver '%s' could not be loaded!\n",
-                          fallback_driver_name);
+               pr_warn("Fallback driver '%s' could not be loaded!\n",
+                       fallback_driver_name);
                err = PTR_ERR(fallback_tfm);
                goto out;
        }
@@@ -418,16 -418,16 +418,16 @@@ static int n2_hmac_cra_init(struct cryp
        fallback_tfm = crypto_alloc_ahash(fallback_driver_name, 0,
                                          CRYPTO_ALG_NEED_FALLBACK);
        if (IS_ERR(fallback_tfm)) {
-               pr_warning("Fallback driver '%s' could not be loaded!\n",
-                          fallback_driver_name);
+               pr_warn("Fallback driver '%s' could not be loaded!\n",
+                       fallback_driver_name);
                err = PTR_ERR(fallback_tfm);
                goto out;
        }
  
        child_shash = crypto_alloc_shash(n2alg->child_alg, 0, 0);
        if (IS_ERR(child_shash)) {
-               pr_warning("Child shash '%s' could not be loaded!\n",
-                          n2alg->child_alg);
+               pr_warn("Child shash '%s' could not be loaded!\n",
+                       n2alg->child_alg);
                err = PTR_ERR(child_shash);
                goto out_free_fallback;
        }
@@@ -760,13 -760,21 +760,13 @@@ static int n2_des_setkey(struct crypto_
        struct crypto_tfm *tfm = crypto_ablkcipher_tfm(cipher);
        struct n2_cipher_context *ctx = crypto_tfm_ctx(tfm);
        struct n2_cipher_alg *n2alg = n2_cipher_alg(tfm);
 -      u32 tmp[DES_EXPKEY_WORDS];
        int err;
  
 -      ctx->enc_type = n2alg->enc_type;
 -
 -      if (keylen != DES_KEY_SIZE) {
 -              crypto_ablkcipher_set_flags(cipher, CRYPTO_TFM_RES_BAD_KEY_LEN);
 -              return -EINVAL;
 -      }
 +      err = verify_ablkcipher_des_key(cipher, key);
 +      if (err)
 +              return err;
  
 -      err = des_ekey(tmp, key);
 -      if (err == 0 && (tfm->crt_flags & CRYPTO_TFM_REQ_FORBID_WEAK_KEYS)) {
 -              tfm->crt_flags |= CRYPTO_TFM_RES_WEAK_KEY;
 -              return -EINVAL;
 -      }
 +      ctx->enc_type = n2alg->enc_type;
  
        ctx->key_len = keylen;
        memcpy(ctx->key.des, key, keylen);
@@@ -779,11 -787,15 +779,11 @@@ static int n2_3des_setkey(struct crypto
        struct crypto_tfm *tfm = crypto_ablkcipher_tfm(cipher);
        struct n2_cipher_context *ctx = crypto_tfm_ctx(tfm);
        struct n2_cipher_alg *n2alg = n2_cipher_alg(tfm);
 -      u32 flags;
        int err;
  
 -      flags = crypto_ablkcipher_get_flags(cipher);
 -      err = __des3_verify_key(&flags, key);
 -      if (unlikely(err)) {
 -              crypto_ablkcipher_set_flags(cipher, flags);
 +      err = verify_ablkcipher_des3_key(cipher, key);
 +      if (err)
                return err;
 -      }
  
        ctx->enc_type = n2alg->enc_type;
  
@@@ -1283,20 -1295,20 +1283,20 @@@ struct n2_hash_tmpl 
        u8              hmac_type;
  };
  
 -static const u32 md5_init[MD5_HASH_WORDS] = {
 +static const u32 n2_md5_init[MD5_HASH_WORDS] = {
        cpu_to_le32(MD5_H0),
        cpu_to_le32(MD5_H1),
        cpu_to_le32(MD5_H2),
        cpu_to_le32(MD5_H3),
  };
 -static const u32 sha1_init[SHA1_DIGEST_SIZE / 4] = {
 +static const u32 n2_sha1_init[SHA1_DIGEST_SIZE / 4] = {
        SHA1_H0, SHA1_H1, SHA1_H2, SHA1_H3, SHA1_H4,
  };
 -static const u32 sha256_init[SHA256_DIGEST_SIZE / 4] = {
 +static const u32 n2_sha256_init[SHA256_DIGEST_SIZE / 4] = {
        SHA256_H0, SHA256_H1, SHA256_H2, SHA256_H3,
        SHA256_H4, SHA256_H5, SHA256_H6, SHA256_H7,
  };
 -static const u32 sha224_init[SHA256_DIGEST_SIZE / 4] = {
 +static const u32 n2_sha224_init[SHA256_DIGEST_SIZE / 4] = {
        SHA224_H0, SHA224_H1, SHA224_H2, SHA224_H3,
        SHA224_H4, SHA224_H5, SHA224_H6, SHA224_H7,
  };
  static const struct n2_hash_tmpl hash_tmpls[] = {
        { .name         = "md5",
          .hash_zero    = md5_zero_message_hash,
 -        .hash_init    = md5_init,
 +        .hash_init    = n2_md5_init,
          .auth_type    = AUTH_TYPE_MD5,
          .hmac_type    = AUTH_TYPE_HMAC_MD5,
          .hw_op_hashsz = MD5_DIGEST_SIZE,
          .block_size   = MD5_HMAC_BLOCK_SIZE },
        { .name         = "sha1",
          .hash_zero    = sha1_zero_message_hash,
 -        .hash_init    = sha1_init,
 +        .hash_init    = n2_sha1_init,
          .auth_type    = AUTH_TYPE_SHA1,
          .hmac_type    = AUTH_TYPE_HMAC_SHA1,
          .hw_op_hashsz = SHA1_DIGEST_SIZE,
          .block_size   = SHA1_BLOCK_SIZE },
        { .name         = "sha256",
          .hash_zero    = sha256_zero_message_hash,
 -        .hash_init    = sha256_init,
 +        .hash_init    = n2_sha256_init,
          .auth_type    = AUTH_TYPE_SHA256,
          .hmac_type    = AUTH_TYPE_HMAC_SHA256,
          .hw_op_hashsz = SHA256_DIGEST_SIZE,
          .block_size   = SHA256_BLOCK_SIZE },
        { .name         = "sha224",
          .hash_zero    = sha224_zero_message_hash,
 -        .hash_init    = sha224_init,
 +        .hash_init    = n2_sha224_init,
          .auth_type    = AUTH_TYPE_SHA256,
          .hmac_type    = AUTH_TYPE_RESERVED,
          .hw_op_hashsz = SHA256_DIGEST_SIZE,
index 1137dd152b5cb7f6a2cd2ac43a84c3e9394f268b,ea4ef5b579218178b4c62698c767ed2bf40a910f..ecc1ef6c386d8321082ffc7b5dc1afc0fc6714f5
@@@ -402,8 -402,8 +402,8 @@@ hdlc_empty_fifo(struct bchannel *bch, i
        } else {
                cnt = bchannel_get_rxbuf(bch, count);
                if (cnt < 0) {
-                       pr_warning("%s.B%d: No bufferspace for %d bytes\n",
-                                  fc->name, bch->nr, count);
+                       pr_warn("%s.B%d: No bufferspace for %d bytes\n",
+                               fc->name, bch->nr, count);
                        return;
                }
                p = skb_put(bch->rx_skb, count);
@@@ -509,7 -509,8 +509,7 @@@ HDLC_irq_xpr(struct bchannel *bch
        if (bch->tx_skb && bch->tx_idx < bch->tx_skb->len) {
                hdlc_fill_fifo(bch);
        } else {
 -              if (bch->tx_skb)
 -                      dev_kfree_skb(bch->tx_skb);
 +              dev_kfree_skb(bch->tx_skb);
                if (get_next_bframe(bch)) {
                        hdlc_fill_fifo(bch);
                        test_and_clear_bit(FLG_TX_EMPTY, &bch->Flags);
@@@ -538,8 -539,8 +538,8 @@@ HDLC_irq(struct bchannel *bch, u32 stat
        }
        if (stat & HDLC_INT_RPR) {
                if (stat & HDLC_STAT_RDO) {
-                       pr_warning("%s: ch%d stat %x RDO\n",
-                                  fc->name, bch->nr, stat);
+                       pr_warn("%s: ch%d stat %x RDO\n",
+                               fc->name, bch->nr, stat);
                        hdlc->ctrl.sr.xml = 0;
                        hdlc->ctrl.sr.cmd |= HDLC_CMD_RRS;
                        write_ctrl(bch, 1);
                                    HDLC_STAT_CRCVFR) {
                                        recv_Bchannel(bch, 0, false);
                                } else {
-                                       pr_warning("%s: got invalid frame\n",
-                                                  fc->name);
+                                       pr_warn("%s: got invalid frame\n",
+                                               fc->name);
                                        skb_trim(bch->rx_skb, 0);
                                }
                        }
@@@ -574,8 -575,8 +574,8 @@@ handle_tx
                 * restart transmitting the whole frame on HDLC
                 * in transparent mode we send the next data
                 */
-               pr_warning("%s: ch%d stat %x XDU %s\n", fc->name, bch->nr,
-                          stat, bch->tx_skb ? "tx_skb" : "no tx_skb");
+               pr_warn("%s: ch%d stat %x XDU %s\n", fc->name, bch->nr,
+                       stat, bch->tx_skb ? "tx_skb" : "no tx_skb");
                if (bch->tx_skb && bch->tx_skb->len) {
                        if (!test_bit(FLG_TRANSPARENT, &bch->Flags))
                                bch->tx_idx = 0;
index 2330a7d24267951de7880bd7d75f48abd3bac940,3807a31cca88349a17beafa78af7457c3d40fc5e..abdf787c1a716d78e2b134164139b3007b3cc800
@@@ -566,8 -566,7 +566,7 @@@ hfcpci_empty_fifo_trans(struct bchanne
        }
        maxlen = bchannel_get_rxbuf(bch, fcnt_rx);
        if (maxlen < 0) {
-               pr_warning("B%d: No bufferspace for %d bytes\n",
-                          bch->nr, fcnt_rx);
+               pr_warn("B%d: No bufferspace for %d bytes\n", bch->nr, fcnt_rx);
        } else {
                ptr = skb_put(bch->rx_skb, fcnt_rx);
                if (le16_to_cpu(*z2r) + fcnt_rx <= B_FIFO_SIZE + B_SUB_VAL)
@@@ -1119,7 -1118,8 +1118,7 @@@ tx_birq(struct bchannel *bch
        if (bch->tx_skb && bch->tx_idx < bch->tx_skb->len)
                hfcpci_fill_fifo(bch);
        else {
 -              if (bch->tx_skb)
 -                      dev_kfree_skb(bch->tx_skb);
 +              dev_kfree_skb(bch->tx_skb);
                if (get_next_bframe(bch))
                        hfcpci_fill_fifo(bch);
        }
@@@ -1131,7 -1131,8 +1130,7 @@@ tx_dirq(struct dchannel *dch
        if (dch->tx_skb && dch->tx_idx < dch->tx_skb->len)
                hfcpci_fill_dfifo(dch->hw);
        else {
 -              if (dch->tx_skb)
 -                      dev_kfree_skb(dch->tx_skb);
 +              dev_kfree_skb(dch->tx_skb);
                if (get_next_dframe(dch))
                        hfcpci_fill_dfifo(dch->hw);
        }
index 008a74a1ed444720a29537f037dedfac821d46d1,fa029192eb06d6d9fc9a5d684623e2668dd91e9d..621364bb6b129c2bd459b1f0a13f558318e656cc
@@@ -841,8 -841,8 +841,8 @@@ hfcsusb_rx_frame(struct usb_fifo *fifo
                if (maxlen < 0) {
                        if (rx_skb)
                                skb_trim(rx_skb, 0);
-                       pr_warning("%s.B%d: No bufferspace for %d bytes\n",
-                                  hw->name, fifo->bch->nr, len);
+                       pr_warn("%s.B%d: No bufferspace for %d bytes\n",
+                               hw->name, fifo->bch->nr, len);
                        spin_unlock_irqrestore(&hw->lock, flags);
                        return;
                }
@@@ -1394,7 -1394,6 +1394,7 @@@ start_isoc_chain(struct usb_fifo *fifo
                                printk(KERN_DEBUG
                                       "%s: %s: alloc urb for fifo %i failed",
                                       hw->name, __func__, fifo->fifonum);
 +                              continue;
                        }
                        fifo->iso[i].owner_fifo = (struct usb_fifo *) fifo;
                        fifo->iso[i].indx = i;
@@@ -1693,23 -1692,13 +1693,23 @@@ hfcsusb_stop_endpoint(struct hfcsusb *h
  static int
  setup_hfcsusb(struct hfcsusb *hw)
  {
 +      void *dmabuf = kmalloc(sizeof(u_char), GFP_KERNEL);
        u_char b;
 +      int ret;
  
        if (debug & DBG_HFC_CALL_TRACE)
                printk(KERN_DEBUG "%s: %s\n", hw->name, __func__);
  
 +      if (!dmabuf)
 +              return -ENOMEM;
 +
 +      ret = read_reg_atomic(hw, HFCUSB_CHIP_ID, dmabuf);
 +
 +      memcpy(&b, dmabuf, sizeof(u_char));
 +      kfree(dmabuf);
 +
        /* check the chip id */
 -      if (read_reg_atomic(hw, HFCUSB_CHIP_ID, &b) != 1) {
 +      if (ret != 1) {
                printk(KERN_DEBUG "%s: %s: cannot read chip id\n",
                       hw->name, __func__);
                return 1;
@@@ -1966,9 -1955,6 +1966,9 @@@ hfcsusb_probe(struct usb_interface *int
  
                                /* get endpoint base */
                                idx = ((ep_addr & 0x7f) - 1) * 2;
 +                              if (idx > 15)
 +                                      return -EIO;
 +
                                if (ep_addr & 0x80)
                                        idx++;
                                attr = ep->desc.bmAttributes;
index bca880213e9192b34c10d12890ae9c4a65cf2f22,f468b4154dbaf294da990fd8c1679cb80dd802ba..ec475087fbf931171a1f69a218ed4aa1fdf64c6d
@@@ -190,7 -190,8 +190,7 @@@ isac_rme_irq(struct isac_hw *isac
  #endif
                }
                WriteISAC(isac, ISAC_CMDR, 0x80);
 -              if (isac->dch.rx_skb)
 -                      dev_kfree_skb(isac->dch.rx_skb);
 +              dev_kfree_skb(isac->dch.rx_skb);
                isac->dch.rx_skb = NULL;
        } else {
                count = ReadISAC(isac, ISAC_RBCL) & 0x1f;
@@@ -209,7 -210,8 +209,7 @@@ isac_xpr_irq(struct isac_hw *isac
        if (isac->dch.tx_skb && isac->dch.tx_idx < isac->dch.tx_skb->len) {
                isac_fill_fifo(isac);
        } else {
 -              if (isac->dch.tx_skb)
 -                      dev_kfree_skb(isac->dch.tx_skb);
 +              dev_kfree_skb(isac->dch.tx_skb);
                if (get_next_dframe(&isac->dch))
                        isac_fill_fifo(isac);
        }
@@@ -462,7 -464,8 +462,7 @@@ isacsx_rme_irq(struct isac_hw *isac
                        isac->dch.err_crc++;
  #endif
                WriteISAC(isac, ISACX_CMDRD, ISACX_CMDRD_RMC);
 -              if (isac->dch.rx_skb)
 -                      dev_kfree_skb(isac->dch.rx_skb);
 +              dev_kfree_skb(isac->dch.rx_skb);
                isac->dch.rx_skb = NULL;
        } else {
                count = ReadISAC(isac, ISACX_RBCLD) & 0x1f;
@@@ -936,8 -939,8 +936,8 @@@ hscx_empty_fifo(struct hscx_hw *hscx, u
                hscx_cmdr(hscx, 0x80); /* RMC */
                if (hscx->bch.rx_skb)
                        skb_trim(hscx->bch.rx_skb, 0);
-               pr_warning("%s.B%d: No bufferspace for %d bytes\n",
-                          hscx->ip->name, hscx->bch.nr, count);
+               pr_warn("%s.B%d: No bufferspace for %d bytes\n",
+                       hscx->ip->name, hscx->bch.nr, count);
                return;
        }
        p = skb_put(hscx->bch.rx_skb, count);
@@@ -1009,7 -1012,8 +1009,7 @@@ hscx_xpr(struct hscx_hw *hx
        if (hx->bch.tx_skb && hx->bch.tx_idx < hx->bch.tx_skb->len) {
                hscx_fill_fifo(hx);
        } else {
 -              if (hx->bch.tx_skb)
 -                      dev_kfree_skb(hx->bch.tx_skb);
 +              dev_kfree_skb(hx->bch.tx_skb);
                if (get_next_bframe(&hx->bch)) {
                        hscx_fill_fifo(hx);
                        test_and_clear_bit(FLG_TX_EMPTY, &hx->bch.Flags);
index 4a3e748a1c26ed0a47573dc82c19a4c845aeac46,62ead8b5496a30f67418a7645a9b8a03cc7ca86c..096d8c5e5df90daca6e6f4bfc82a88cf851a0266
@@@ -222,7 -222,7 +222,7 @@@ load_firmware(struct isar_hw *isar, con
                        goto reterror;
                }
                if (!poll_mbox(isar, 1000)) {
-                       pr_warning("ISAR poll_mbox dkey failed\n");
+                       pr_warn("ISAR poll_mbox dkey failed\n");
                        ret = -ETIME;
                        goto reterror;
                }
@@@ -432,8 -432,8 +432,8 @@@ isar_rcv_frame(struct isar_ch *ch
        case ISDN_P_B_MODEM_ASYNC:
                maxlen = bchannel_get_rxbuf(&ch->bch, ch->is->clsb);
                if (maxlen < 0) {
-                       pr_warning("%s.B%d: No bufferspace for %d bytes\n",
-                                  ch->is->name, ch->bch.nr, ch->is->clsb);
+                       pr_warn("%s.B%d: No bufferspace for %d bytes\n",
+                               ch->is->name, ch->bch.nr, ch->is->clsb);
                        ch->is->write_reg(ch->is->hw, ISAR_IIA, 0);
                        break;
                }
        case ISDN_P_B_HDLC:
                maxlen = bchannel_get_rxbuf(&ch->bch, ch->is->clsb);
                if (maxlen < 0) {
-                       pr_warning("%s.B%d: No bufferspace for %d bytes\n",
-                                  ch->is->name, ch->bch.nr, ch->is->clsb);
+                       pr_warn("%s.B%d: No bufferspace for %d bytes\n",
+                               ch->is->name, ch->bch.nr, ch->is->clsb);
                        ch->is->write_reg(ch->is->hw, ISAR_IIA, 0);
                        break;
                }
@@@ -690,7 -690,8 +690,7 @@@ send_next(struct isar_ch *ch
                        }
                }
        }
 -      if (ch->bch.tx_skb)
 -              dev_kfree_skb(ch->bch.tx_skb);
 +      dev_kfree_skb(ch->bch.tx_skb);
        if (get_next_bframe(&ch->bch)) {
                isar_fill_fifo(ch);
                test_and_clear_bit(FLG_TX_EMPTY, &ch->bch.Flags);
index 61caa7e50b9abac6360a26a87704f5b0e48c7895,561295ba31f94a140e571d7a37acfa6c4ef5456f..6aae97e827b72f3b9b81ff508ff32317878f0277
@@@ -16,7 -16,7 +16,7 @@@
  #include "ipac.h"
  #include "iohelper.h"
  #include "netjet.h"
 -#include <linux/isdn/hdlc.h>
 +#include "isdnhdlc.h"
  
  #define NETJET_REV    "2.0"
  
@@@ -380,8 -380,8 +380,8 @@@ read_dma(struct tiger_ch *bc, u32 idx, 
        stat = bchannel_get_rxbuf(&bc->bch, cnt);
        /* only transparent use the count here, HDLC overun is detected later */
        if (stat == -ENOMEM) {
-               pr_warning("%s.B%d: No memory for %d bytes\n",
-                          card->name, bc->bch.nr, cnt);
+               pr_warn("%s.B%d: No memory for %d bytes\n",
+                       card->name, bc->bch.nr, cnt);
                return;
        }
        if (test_bit(FLG_TRANSPARENT, &bc->bch.Flags))
                        recv_Bchannel(&bc->bch, 0, false);
                        stat = bchannel_get_rxbuf(&bc->bch, bc->bch.maxlen);
                        if (stat < 0) {
-                               pr_warning("%s.B%d: No memory for %d bytes\n",
-                                          card->name, bc->bch.nr, cnt);
+                               pr_warn("%s.B%d: No memory for %d bytes\n",
+                                       card->name, bc->bch.nr, cnt);
                                return;
                        }
                } else if (stat == -HDLC_CRC_ERROR) {
@@@ -605,7 -605,8 +605,7 @@@ bc_next_frame(struct tiger_ch *bc
        if (bc->bch.tx_skb && bc->bch.tx_idx < bc->bch.tx_skb->len) {
                fill_dma(bc);
        } else {
 -              if (bc->bch.tx_skb)
 -                      dev_kfree_skb(bc->bch.tx_skb);
 +              dev_kfree_skb(bc->bch.tx_skb);
                if (get_next_bframe(&bc->bch)) {
                        fill_dma(bc);
                        test_and_clear_bit(FLG_TX_EMPTY, &bc->bch.Flags);
index bad55fdacd36f0c5fb6de200d161e2021daf27e0,c5c87faa28eb3303e1bcaa57096f865f7c4aad8b..f3b8db7b48fe08c86b11f37fb50554b5831694cb
@@@ -356,7 -356,8 +356,7 @@@ handle_rxD(struct w6692_hw *card) 
                        card->dch.err_rx++;
  #endif
                }
 -              if (card->dch.rx_skb)
 -                      dev_kfree_skb(card->dch.rx_skb);
 +              dev_kfree_skb(card->dch.rx_skb);
                card->dch.rx_skb = NULL;
                WriteW6692(card, W_D_CMDR, W_D_CMDR_RACK | W_D_CMDR_RRST);
        } else {
@@@ -375,7 -376,8 +375,7 @@@ handle_txD(struct w6692_hw *card) 
        if (card->dch.tx_skb && card->dch.tx_idx < card->dch.tx_skb->len) {
                W6692_fill_Dfifo(card);
        } else {
 -              if (card->dch.tx_skb)
 -                      dev_kfree_skb(card->dch.tx_skb);
 +              dev_kfree_skb(card->dch.tx_skb);
                if (get_next_dframe(&card->dch))
                        W6692_fill_Dfifo(card);
        }
@@@ -466,8 -468,8 +466,8 @@@ W6692_empty_Bfifo(struct w6692_ch *wch
                WriteW6692B(wch, W_B_CMDR, W_B_CMDR_RACK | W_B_CMDR_RACT);
                if (wch->bch.rx_skb)
                        skb_trim(wch->bch.rx_skb, 0);
-               pr_warning("%s.B%d: No bufferspace for %d bytes\n",
-                          card->name, wch->bch.nr, count);
+               pr_warn("%s.B%d: No bufferspace for %d bytes\n",
+                       card->name, wch->bch.nr, count);
                return;
        }
        ptr = skb_put(wch->bch.rx_skb, count);
@@@ -634,7 -636,8 +634,7 @@@ send_next(struct w6692_ch *wch
        if (wch->bch.tx_skb && wch->bch.tx_idx < wch->bch.tx_skb->len) {
                W6692_fill_Bfifo(wch);
        } else {
 -              if (wch->bch.tx_skb)
 -                      dev_kfree_skb(wch->bch.tx_skb);
 +              dev_kfree_skb(wch->bch.tx_skb);
                if (get_next_bframe(&wch->bch)) {
                        W6692_fill_Bfifo(wch);
                        test_and_clear_bit(FLG_TX_EMPTY, &wch->bch.Flags);
@@@ -729,8 -732,8 +729,8 @@@ W6692B_interrupt(struct w6692_hw *card
                                 wch->bch.nr, star);
                }
                if (star & W_B_STAR_XDOW) {
-                       pr_warning("%s: B%d XDOW proto=%x\n", card->name,
-                                  wch->bch.nr, wch->bch.state);
+                       pr_warn("%s: B%d XDOW proto=%x\n", card->name,
+                               wch->bch.nr, wch->bch.state);
  #ifdef ERROR_STATISTIC
                        wch->bch.err_xdu++;
  #endif
                        return; /* handle XDOW only once */
        }
        if (stat & W_B_EXI_XDUN) {
-               pr_warning("%s: B%d XDUN proto=%x\n", card->name,
-                          wch->bch.nr, wch->bch.state);
+               pr_warn("%s: B%d XDUN proto=%x\n", card->name,
+                       wch->bch.nr, wch->bch.state);
  #ifdef ERROR_STATISTIC
                wch->bch.err_xdu++;
  #endif
diff --combined drivers/of/fdt.c
index 223d617ecfe17458207dfc6dfb3c5b9c134d937f,24718865ca0a442cf46b1e15368416bf9fbdefbe..f1c23aad951ec94985280987071c853e47e90a47
@@@ -24,7 -24,6 +24,7 @@@
  #include <linux/debugfs.h>
  #include <linux/serial_core.h>
  #include <linux/sysfs.h>
 +#include <linux/random.h>
  
  #include <asm/setup.h>  /* for COMMAND_LINE_SIZE */
  #include <asm/page.h>
@@@ -39,7 -38,7 +39,7 @@@
   * memory entries in the /memory node. This function may be called
   * any time after initial_boot_param is set.
   */
 -void of_fdt_limit_memory(int limit)
 +void __init of_fdt_limit_memory(int limit)
  {
        int memory;
        int len;
        }
  }
  
 -/**
 - * of_fdt_is_compatible - Return true if given node from the given blob has
 - * compat in its compatible list
 - * @blob: A device tree blob
 - * @node: node to test
 - * @compat: compatible string to compare with compatible list.
 - *
 - * On match, returns a non-zero value with smaller values returned for more
 - * specific compatible values.
 - */
 -static int of_fdt_is_compatible(const void *blob,
 -                    unsigned long node, const char *compat)
 -{
 -      const char *cp;
 -      int cplen;
 -      unsigned long l, score = 0;
 -
 -      cp = fdt_getprop(blob, node, "compatible", &cplen);
 -      if (cp == NULL)
 -              return 0;
 -      while (cplen > 0) {
 -              score++;
 -              if (of_compat_cmp(cp, compat, strlen(compat)) == 0)
 -                      return score;
 -              l = strlen(cp) + 1;
 -              cp += l;
 -              cplen -= l;
 -      }
 -
 -      return 0;
 -}
 -
 -/**
 - * of_fdt_is_big_endian - Return true if given node needs BE MMIO accesses
 - * @blob: A device tree blob
 - * @node: node to test
 - *
 - * Returns true if the node has a "big-endian" property, or if the kernel
 - * was compiled for BE *and* the node has a "native-endian" property.
 - * Returns false otherwise.
 - */
 -bool of_fdt_is_big_endian(const void *blob, unsigned long node)
 -{
 -      if (fdt_getprop(blob, node, "big-endian", NULL))
 -              return true;
 -      if (IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) &&
 -          fdt_getprop(blob, node, "native-endian", NULL))
 -              return true;
 -      return false;
 -}
 -
  static bool of_fdt_device_is_available(const void *blob, unsigned long node)
  {
        const char *status = fdt_getprop(blob, node, "status", NULL);
        return false;
  }
  
 -/**
 - * of_fdt_match - Return true if node matches a list of compatible values
 - */
 -int of_fdt_match(const void *blob, unsigned long node,
 -                 const char *const *compat)
 -{
 -      unsigned int tmp, score = 0;
 -
 -      if (!compat)
 -              return 0;
 -
 -      while (*compat) {
 -              tmp = of_fdt_is_compatible(blob, node, *compat);
 -              if (tmp && (score == 0 || (tmp < score)))
 -                      score = tmp;
 -              compat++;
 -      }
 -
 -      return score;
 -}
 -
  static void *unflatten_dt_alloc(void **mem, unsigned long size,
                                       unsigned long align)
  {
@@@ -412,8 -483,8 +412,8 @@@ void *__unflatten_device_tree(const voi
        /* Second pass, do actual unflattening */
        unflatten_dt_nodes(blob, mem, dad, mynodes);
        if (be32_to_cpup(mem + size) != 0xdeadbeef)
-               pr_warning("End of tree marker overwritten: %08x\n",
-                          be32_to_cpup(mem + size));
+               pr_warn("End of tree marker overwritten: %08x\n",
+                       be32_to_cpup(mem + size));
  
        if (detached && mynodes) {
                of_node_set_flag(*mynodes, OF_DETACHED);
@@@ -464,7 -535,7 +464,7 @@@ EXPORT_SYMBOL_GPL(of_fdt_unflatten_tree
  int __initdata dt_root_addr_cells;
  int __initdata dt_root_size_cells;
  
 -void *initial_boot_params;
 +void *initial_boot_params __ro_after_init;
  
  #ifdef CONFIG_OF_EARLY_FLATTREE
  
@@@ -480,8 -551,7 +480,8 @@@ static int __init __reserved_mem_reserv
        phys_addr_t base, size;
        int len;
        const __be32 *prop;
 -      int nomap, first = 1;
 +      int first = 1;
 +      bool nomap;
  
        prop = of_get_flat_dt_prop(node, "reg", &len);
        if (!prop)
@@@ -596,7 -666,7 +596,7 @@@ void __init early_init_fdt_scan_reserve
                fdt_get_mem_rsv(initial_boot_params, n, &base, &size);
                if (!size)
                        break;
 -              early_init_dt_reserve_memory_arch(base, size, 0);
 +              early_init_dt_reserve_memory_arch(base, size, false);
        }
  
        of_scan_flat_dt(__fdt_scan_reserved_mem, NULL);
@@@ -614,7 -684,7 +614,7 @@@ void __init early_init_fdt_reserve_self
        /* Reserve the dtb region */
        early_init_dt_reserve_memory_arch(__pa(initial_boot_params),
                                          fdt_totalsize(initial_boot_params),
 -                                        0);
 +                                        false);
  }
  
  /**
@@@ -688,7 -758,7 +688,7 @@@ int __init of_scan_flat_dt_subnodes(uns
   * @return offset of the subnode, or -FDT_ERR_NOTFOUND if there is none
   */
  
 -int of_get_flat_dt_subnode_by_name(unsigned long node, const char *uname)
 +int __init of_get_flat_dt_subnode_by_name(unsigned long node, const char *uname)
  {
        return fdt_subnode_offset(initial_boot_params, node, uname);
  }
@@@ -701,6 -771,14 +701,6 @@@ unsigned long __init of_get_flat_dt_roo
        return 0;
  }
  
 -/**
 - * of_get_flat_dt_size - Return the total size of the FDT
 - */
 -int __init of_get_flat_dt_size(void)
 -{
 -      return fdt_totalsize(initial_boot_params);
 -}
 -
  /**
   * of_get_flat_dt_prop - Given a node in the flat blob, return the property ptr
   *
@@@ -713,38 -791,6 +713,38 @@@ const void *__init of_get_flat_dt_prop(
        return fdt_getprop(initial_boot_params, node, name, size);
  }
  
 +/**
 + * of_fdt_is_compatible - Return true if given node from the given blob has
 + * compat in its compatible list
 + * @blob: A device tree blob
 + * @node: node to test
 + * @compat: compatible string to compare with compatible list.
 + *
 + * On match, returns a non-zero value with smaller values returned for more
 + * specific compatible values.
 + */
 +static int of_fdt_is_compatible(const void *blob,
 +                    unsigned long node, const char *compat)
 +{
 +      const char *cp;
 +      int cplen;
 +      unsigned long l, score = 0;
 +
 +      cp = fdt_getprop(blob, node, "compatible", &cplen);
 +      if (cp == NULL)
 +              return 0;
 +      while (cplen > 0) {
 +              score++;
 +              if (of_compat_cmp(cp, compat, strlen(compat)) == 0)
 +                      return score;
 +              l = strlen(cp) + 1;
 +              cp += l;
 +              cplen -= l;
 +      }
 +
 +      return 0;
 +}
 +
  /**
   * of_flat_dt_is_compatible - Return true if given node has compat in compatible list
   * @node: node to test
@@@ -758,21 -804,9 +758,21 @@@ int __init of_flat_dt_is_compatible(uns
  /**
   * of_flat_dt_match - Return true if node matches a list of compatible values
   */
 -int __init of_flat_dt_match(unsigned long node, const char *const *compat)
 +static int __init of_flat_dt_match(unsigned long node, const char *const *compat)
  {
 -      return of_fdt_match(initial_boot_params, node, compat);
 +      unsigned int tmp, score = 0;
 +
 +      if (!compat)
 +              return 0;
 +
 +      while (*compat) {
 +              tmp = of_fdt_is_compatible(initial_boot_params, node, *compat);
 +              if (tmp && (score == 0 || (tmp < score)))
 +                      score = tmp;
 +              compat++;
 +      }
 +
 +      return score;
  }
  
  /**
@@@ -1045,7 -1079,6 +1045,7 @@@ int __init early_init_dt_scan_chosen(un
  {
        int l;
        const char *p;
 +      const void *rng_seed;
  
        pr_debug("search \"chosen\", depth: %d, uname: %s\n", depth, uname);
  
  
        pr_debug("Command line is: %s\n", (char*)data);
  
 +      rng_seed = of_get_flat_dt_prop(node, "rng-seed", &l);
 +      if (rng_seed && l > 0) {
 +              add_bootloader_randomness(rng_seed, l);
 +
 +              /* try to clear seed so it won't be found. */
 +              fdt_nop_property(initial_boot_params, node, "rng-seed");
 +
 +              /* update CRC check value */
 +              of_fdt_crc32 = crc32_be(~0, initial_boot_params,
 +                              fdt_totalsize(initial_boot_params));
 +      }
 +
        /* break now */
        return 1;
  }
@@@ -1120,25 -1141,25 +1120,25 @@@ void __init __weak early_init_dt_add_me
        size &= PAGE_MASK;
  
        if (base > MAX_MEMBLOCK_ADDR) {
-               pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
-                               base, base + size);
+               pr_warn("Ignoring memory block 0x%llx - 0x%llx\n",
+                       base, base + size);
                return;
        }
  
        if (base + size - 1 > MAX_MEMBLOCK_ADDR) {
-               pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
-                               ((u64)MAX_MEMBLOCK_ADDR) + 1, base + size);
+               pr_warn("Ignoring memory range 0x%llx - 0x%llx\n",
+                       ((u64)MAX_MEMBLOCK_ADDR) + 1, base + size);
                size = MAX_MEMBLOCK_ADDR - base + 1;
        }
  
        if (base + size < phys_offset) {
-               pr_warning("Ignoring memory block 0x%llx - 0x%llx\n",
-                          base, base + size);
+               pr_warn("Ignoring memory block 0x%llx - 0x%llx\n",
+                       base, base + size);
                return;
        }
        if (base < phys_offset) {
-               pr_warning("Ignoring memory range 0x%llx - 0x%llx\n",
-                          base, phys_offset);
+               pr_warn("Ignoring memory range 0x%llx - 0x%llx\n",
+                       base, phys_offset);
                size -= phys_offset - base;
                base = phys_offset;
        }
diff --combined fs/afs/inode.c
index 46d2d7cb461daded225423aeb5d990a3fc340698,09da87ad95de9ff233859cd83b4eee0c9807581b..281470fe1183c10dc1621d6f754780e304058444
@@@ -34,8 -34,7 +34,7 @@@ static noinline void dump_vnode(struct 
  {
        static unsigned long once_only;
  
-       pr_warn("kAFS: AFS vnode with undefined type %u\n",
-               vnode->status.type);
+       pr_warn("kAFS: AFS vnode with undefined type %u\n", vnode->status.type);
        pr_warn("kAFS: A=%d m=%o s=%llx v=%llx\n",
                vnode->status.abort_code,
                vnode->status.mode,
@@@ -175,11 -174,11 +174,11 @@@ static void afs_apply_status(struct afs
        BUG_ON(test_bit(AFS_VNODE_UNSET, &vnode->flags));
  
        if (status->type != vnode->status.type) {
-               pr_warning("Vnode %llx:%llx:%x changed type %u to %u\n",
-                          vnode->fid.vid,
-                          vnode->fid.vnode,
-                          vnode->fid.unique,
-                          status->type, vnode->status.type);
+               pr_warn("Vnode %llx:%llx:%x changed type %u to %u\n",
+                       vnode->fid.vid,
+                       vnode->fid.vnode,
+                       vnode->fid.unique,
+                       status->type, vnode->status.type);
                afs_protocol_error(NULL, -EBADMSG, afs_eproto_bad_status);
                return;
        }
@@@ -283,7 -282,7 +282,7 @@@ void afs_vnode_commit_status(struct afs
                if (scb->status.abort_code == VNOVNODE) {
                        set_bit(AFS_VNODE_DELETED, &vnode->flags);
                        clear_nlink(&vnode->vfs_inode);
 -                      __afs_break_callback(vnode);
 +                      __afs_break_callback(vnode, afs_cb_break_for_deleted);
                }
        } else {
                if (scb->have_status)
@@@ -443,7 -442,7 +442,7 @@@ struct inode *afs_iget_pseudo_dir(struc
        inode->i_mode           = S_IFDIR | S_IRUGO | S_IXUGO;
        if (root) {
                inode->i_op     = &afs_dynroot_inode_operations;
 -              inode->i_fop    = &afs_dynroot_file_operations;
 +              inode->i_fop    = &simple_dir_operations;
        } else {
                inode->i_op     = &afs_autocell_inode_operations;
        }
@@@ -594,9 -593,8 +593,9 @@@ bool afs_check_validity(struct afs_vnod
        struct afs_cb_interest *cbi;
        struct afs_server *server;
        struct afs_volume *volume = vnode->volume;
 +      enum afs_cb_break_reason need_clear = afs_cb_break_no_break;
        time64_t now = ktime_get_real_seconds();
 -      bool valid, need_clear = false;
 +      bool valid;
        unsigned int cb_break, cb_s_break, cb_v_break;
        int seq = 0;
  
                            vnode->cb_v_break != cb_v_break) {
                                vnode->cb_s_break = cb_s_break;
                                vnode->cb_v_break = cb_v_break;
 -                              need_clear = true;
 +                              need_clear = afs_cb_break_for_vsbreak;
                                valid = false;
                        } else if (test_bit(AFS_VNODE_ZAP_DATA, &vnode->flags)) {
 -                              need_clear = true;
 +                              need_clear = afs_cb_break_for_zap;
                                valid = false;
                        } else if (vnode->cb_expires_at - 10 <= now) {
 -                              need_clear = true;
 +                              need_clear = afs_cb_break_for_lapsed;
                                valid = false;
                        } else {
                                valid = true;
  
        done_seqretry(&vnode->cb_lock, seq);
  
 -      if (need_clear) {
 +      if (need_clear != afs_cb_break_no_break) {
                write_seqlock(&vnode->cb_lock);
                if (cb_break == vnode->cb_break)
 -                      __afs_break_callback(vnode);
 +                      __afs_break_callback(vnode, need_clear);
 +              else
 +                      trace_afs_cb_miss(&vnode->fid, need_clear);
                write_sequnlock(&vnode->cb_lock);
                valid = false;
        }
diff --combined fs/afs/yfsclient.c
index 3ee7abf4b2d02e73ecfc3225bcce9a30a374a855,b73a4ac7a7e18fba43879bcdc21cee32369dc927..9ac035c17dc433fed3f148deab5b62f2ba2405f3
@@@ -152,8 -152,8 +152,8 @@@ static void yfs_check_req(struct afs_ca
                pr_err("kAFS: %s: Request buffer overflow (%zu>%u)\n",
                       call->type->name, len, call->request_size);
        else if (len < call->request_size)
-               pr_warning("kAFS: %s: Request buffer underflow (%zu<%u)\n",
-                          call->type->name, len, call->request_size);
+               pr_warn("kAFS: %s: Request buffer underflow (%zu<%u)\n",
+                       call->type->name, len, call->request_size);
  }
  
  /*
@@@ -450,9 -450,8 +450,9 @@@ static int yfs_deliver_fs_fetch_data64(
                req->offset = req->pos & (PAGE_SIZE - 1);
                afs_extract_to_tmp64(call);
                call->unmarshall++;
 +              /* Fall through */
  
 -              /* Fall through - and extract the returned data length */
 +              /* extract the returned data length */
        case 1:
                _debug("extract data length");
                ret = afs_extract_data(call, true);
                call->bvec[0].bv_page = req->pages[req->index];
                iov_iter_bvec(&call->iter, READ, call->bvec, 1, size);
                ASSERTCMP(size, <=, PAGE_SIZE);
 +              /* Fall through */
  
 -              /* Fall through - and extract the returned data */
 +              /* extract the returned data */
        case 2:
                _debug("extract data %zu/%llu",
                       iov_iter_count(&call->iter), req->remain);
                        goto no_more_data;
  
                /* Discard any excess data the server gave us */
 -              iov_iter_discard(&call->iter, READ, req->actual_len - req->len);
 +              afs_extract_discard(call, req->actual_len - req->len);
                call->unmarshall = 3;
 -
                /* Fall through */
 +
        case 3:
                _debug("extract discard %zu/%llu",
                       iov_iter_count(&call->iter), req->actual_len - req->len);
                                   sizeof(struct yfs_xdr_YFSFetchStatus) +
                                   sizeof(struct yfs_xdr_YFSCallBack) +
                                   sizeof(struct yfs_xdr_YFSVolSync));
 +              /* Fall through */
  
 -              /* Fall through - and extract the metadata */
 +              /* extract the metadata */
        case 4:
                ret = afs_extract_data(call, false);
                if (ret < 0)
                req->file_size = call->out_scb->status.size;
  
                call->unmarshall++;
 -
                /* Fall through */
 +
        case 5:
                break;
        }
@@@ -1432,9 -1429,8 +1432,9 @@@ static int yfs_deliver_fs_get_volume_st
        case 0:
                call->unmarshall++;
                afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSFetchVolumeStatus));
 +              /* Fall through */
  
 -              /* Fall through - and extract the returned status record */
 +              /* extract the returned status record */
        case 1:
                _debug("extract status");
                ret = afs_extract_data(call, true);
                xdr_decode_YFSFetchVolumeStatus(&bp, call->out_volstatus);
                call->unmarshall++;
                afs_extract_to_tmp(call);
 +              /* Fall through */
  
 -              /* Fall through - and extract the volume name length */
 +              /* extract the volume name length */
        case 2:
                ret = afs_extract_data(call, true);
                if (ret < 0)
                size = (call->count + 3) & ~3; /* It's padded */
                afs_extract_to_buf(call, size);
                call->unmarshall++;
 +              /* Fall through */
  
 -              /* Fall through - and extract the volume name */
 +              /* extract the volume name */
        case 3:
                _debug("extract volname");
                ret = afs_extract_data(call, true);
                _debug("volname '%s'", p);
                afs_extract_to_tmp(call);
                call->unmarshall++;
 +              /* Fall through */
  
 -              /* Fall through - and extract the offline message length */
 +              /* extract the offline message length */
        case 4:
                ret = afs_extract_data(call, true);
                if (ret < 0)
                size = (call->count + 3) & ~3; /* It's padded */
                afs_extract_to_buf(call, size);
                call->unmarshall++;
 +              /* Fall through */
  
 -              /* Fall through - and extract the offline message */
 +              /* extract the offline message */
        case 5:
                _debug("extract offline");
                ret = afs_extract_data(call, true);
  
                afs_extract_to_tmp(call);
                call->unmarshall++;
 +              /* Fall through */
  
 -              /* Fall through - and extract the message of the day length */
 +              /* extract the message of the day length */
        case 6:
                ret = afs_extract_data(call, true);
                if (ret < 0)
                size = (call->count + 3) & ~3; /* It's padded */
                afs_extract_to_buf(call, size);
                call->unmarshall++;
 +              /* Fall through */
  
 -              /* Fall through - and extract the message of the day */
 +              /* extract the message of the day */
        case 7:
                _debug("extract motd");
                ret = afs_extract_data(call, false);
                _debug("motd '%s'", p);
  
                call->unmarshall++;
 -
                /* Fall through */
 +
        case 8:
                break;
        }
@@@ -1815,9 -1805,9 +1815,9 @@@ static int yfs_deliver_fs_inline_bulk_s
        case 0:
                afs_extract_to_tmp(call);
                call->unmarshall++;
 +              /* Fall through */
  
                /* Extract the file status count and array in two steps */
 -              /* Fall through */
        case 1:
                _debug("extract status count");
                ret = afs_extract_data(call, true);
                call->unmarshall++;
        more_counts:
                afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSFetchStatus));
 -
                /* Fall through */
 +
        case 2:
                _debug("extract status array %u", call->count);
                ret = afs_extract_data(call, true);
                call->count = 0;
                call->unmarshall++;
                afs_extract_to_tmp(call);
 +              /* Fall through */
  
                /* Extract the callback count and array in two steps */
 -              /* Fall through */
        case 3:
                _debug("extract CB count");
                ret = afs_extract_data(call, true);
                call->unmarshall++;
        more_cbs:
                afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSCallBack));
 -
                /* Fall through */
 +
        case 4:
                _debug("extract CB array");
                ret = afs_extract_data(call, true);
  
                afs_extract_to_buf(call, sizeof(struct yfs_xdr_YFSVolSync));
                call->unmarshall++;
 -
                /* Fall through */
 +
        case 5:
                ret = afs_extract_data(call, false);
                if (ret < 0)
                xdr_decode_YFSVolSync(&bp, call->out_volsync);
  
                call->unmarshall++;
 -
                /* Fall through */
 +
        case 6:
                break;
        }
@@@ -1988,7 -1978,6 +1988,7 @@@ static int yfs_deliver_fs_fetch_opaque_
        case 0:
                afs_extract_to_tmp(call);
                call->unmarshall++;
 +              /* Fall through */
  
                /* Extract the file ACL length */
        case 1:
                        acl->size = call->count2;
                        afs_extract_begin(call, acl->data, size);
                } else {
 -                      iov_iter_discard(&call->iter, READ, size);
 +                      afs_extract_discard(call, size);
                }
                call->unmarshall++;
 +              /* Fall through */
  
                /* Extract the file ACL */
        case 2:
  
                afs_extract_to_tmp(call);
                call->unmarshall++;
 +              /* Fall through */
  
                /* Extract the volume ACL length */
        case 3:
                        acl->size = call->count2;
                        afs_extract_begin(call, acl->data, size);
                } else {
 -                      iov_iter_discard(&call->iter, READ, size);
 +                      afs_extract_discard(call, size);
                }
                call->unmarshall++;
 +              /* Fall through */
  
                /* Extract the volume ACL */
        case 4:
                                   sizeof(struct yfs_xdr_YFSFetchStatus) +
                                   sizeof(struct yfs_xdr_YFSVolSync));
                call->unmarshall++;
 +              /* Fall through */
  
                /* extract the metadata */
        case 5:
                xdr_decode_YFSVolSync(&bp, call->out_volsync);
  
                call->unmarshall++;
 +              /* Fall through */
  
        case 6:
                break;
@@@ -2171,7 -2155,7 +2171,7 @@@ int yfs_fs_store_opaque_acl2(struct afs
               key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode);
  
        size = round_up(acl->size, 4);
 -      call = afs_alloc_flat_call(net, &yfs_RXYFSStoreStatus,
 +      call = afs_alloc_flat_call(net, &yfs_RXYFSStoreOpaqueACL2,
                                   sizeof(__be32) * 2 +
                                   sizeof(struct yfs_xdr_YFSFid) +
                                   sizeof(__be32) + size,
diff --combined lib/Kconfig.debug
index 6c1be6181e38081a267c05f44abb1634da80ec1d,4934b69c7b3900b9293f7a65773f523eefa13402..ecde997db7519dc870f5119206921e935bdf65a5
@@@ -164,6 -164,15 +164,15 @@@ config DYNAMIC_DEBU
          See Documentation/admin-guide/dynamic-debug-howto.rst for additional
          information.
  
+ config SYMBOLIC_ERRNAME
+       bool "Support symbolic error names in printf"
+       default y if PRINTK
+       help
+         If you say Y here, the kernel's printf implementation will
+         be able to print symbolic error names such as ENOSPC instead
+         of the number 28. It makes the kernel image slightly larger
+         (about 3KB), but can make the kernel logs easier to read.
  endmenu # "printk and dmesg options"
  
  menu "Compile-time checks and compiler options"
@@@ -277,6 -286,22 +286,6 @@@ config READABLE_AS
            to keep kernel developers who have to stare a lot at assembler listings
            sane.
  
 -config UNUSED_SYMBOLS
 -      bool "Enable unused/obsolete exported symbols"
 -      default y if X86
 -      help
 -        Unused but exported symbols make the kernel needlessly bigger.  For
 -        that reason most of these unused exports will soon be removed.  This
 -        option is provided temporarily to provide a transition period in case
 -        some external kernel module needs one of these symbols anyway. If you
 -        encounter such a case in your module, consider if you are actually
 -        using the right API.  (rationale: since nobody in the kernel is using
 -        this in a module, there is a pretty good chance it's actually the
 -        wrong interface to use).  If you really need the symbol, please send a
 -        mail to the linux kernel mailing list mentioning the symbol and why
 -        you really need it, and what the merge plan to the mainline kernel for
 -        your module is.
 -
  config DEBUG_FS
        bool "Debug Filesystem"
        help
  
          If unsure, say N.
  
 -config HEADERS_CHECK
 -      bool "Run 'make headers_check' when building vmlinux"
 +config HEADERS_INSTALL
 +      bool "Install uapi headers to usr/include"
        depends on !UML
        help
 -        This option will extract the user-visible kernel headers whenever
 -        building the kernel, and will run basic sanity checks on them to
 -        ensure that exported files do not attempt to include files which
 -        were not exported, etc.
 +        This option will install uapi headers (headers exported to user-space)
 +        into the usr/include directory for use during the kernel build.
 +        This is unneeded for building the kernel itself, but needed for some
 +        user-space program samples. It is also needed by some features such
 +        as uapi header sanity checks.
 +
 +config HEADERS_CHECK
 +      bool "Run sanity checks on uapi headers when building 'all'"
 +      depends on HEADERS_INSTALL
 +      help
 +        This option will run basic sanity checks on uapi headers when
 +        building the 'all' target, for example, ensure that they do not
 +        attempt to include files which were not exported, etc.
  
          If you're making modifications to header files which are
 -        relevant for userspace, say 'Y', and check the headers
 -        exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in
 -        your build tree), to make sure they're suitable.
 +        relevant for userspace, say 'Y'.
  
  config OPTIMIZE_INLINING
 -      bool "Allow compiler to uninline functions marked 'inline'"
 +      def_bool y
        help
          This option determines if the kernel forces gcc to inline the functions
          developers have marked 'inline'. Doing so takes away freedom from gcc to
          decision will become the default in the future. Until then this option
          is there to test gcc for this.
  
 -        If unsure, say N.
 -
  config DEBUG_SECTION_MISMATCH
        bool "Enable full Section mismatch analysis"
        help
          which results in the code/data being placed in specific sections.
          The section mismatch analysis is always performed after a full
          kernel build, and enabling this option causes the following
 -        additional steps to occur:
 +        additional step to occur:
          - Add the option -fno-inline-functions-called-once to gcc commands.
            When inlining a function annotated with __init in a non-init
            function, we would lose the section information and thus
            the analysis would not catch the illegal reference.
            This option tells gcc to inline less (but it does result in
            a larger kernel).
 -        - Run the section mismatch analysis for each module/built-in.a file.
 -          When we run the section mismatch analysis on vmlinux.o, we
 -          lose valuable information about where the mismatch was
 -          introduced.
 -          Running the analysis for each module/built-in.a file
 -          tells where the mismatch happens much closer to the
 -          source. The drawback is that the same mismatch is
 -          reported at least twice.
 -        - Enable verbose reporting from modpost in order to help resolve
 -          the section mismatches that are reported.
  
  config SECTION_MISMATCH_WARN_ONLY
        bool "Make section mismatch errors non-fatal"
@@@ -574,18 -604,17 +583,18 @@@ config DEBUG_KMEMLEA
          In order to access the kmemleak file, debugfs needs to be
          mounted (usually at /sys/kernel/debug).
  
 -config DEBUG_KMEMLEAK_EARLY_LOG_SIZE
 -      int "Maximum kmemleak early log entries"
 +config DEBUG_KMEMLEAK_MEM_POOL_SIZE
 +      int "Kmemleak memory pool size"
        depends on DEBUG_KMEMLEAK
 -      range 200 40000
 -      default 400
 +      range 200 1000000
 +      default 16000
        help
          Kmemleak must track all the memory allocations to avoid
          reporting false positives. Since memory may be allocated or
 -        freed before kmemleak is initialised, an early log buffer is
 -        used to store these actions. If kmemleak reports "early log
 -        buffer exceeded", please increase this value.
 +        freed before kmemleak is fully initialised, use a static pool
 +        of metadata objects to track such callbacks. After kmemleak is
 +        fully initialised, this memory pool acts as an emergency one
 +        if slab allocations fail.
  
  config DEBUG_KMEMLEAK_TEST
        tristate "Simple test for the kernel memory leak detector"
@@@ -1112,7 -1141,7 +1121,7 @@@ config PROVE_LOCKIN
         the proof of observed correctness is also maintained for an
         arbitrary combination of these separate locking variants.
  
 -       For more details, see Documentation/locking/lockdep-design.txt.
 +       For more details, see Documentation/locking/lockdep-design.rst.
  
  config LOCK_STAT
        bool "Lock usage statistics"
        help
         This feature enables tracking lock contention points
  
 -       For more details, see Documentation/locking/lockstat.txt
 +       For more details, see Documentation/locking/lockstat.rst
  
         This also enables lock events required by "perf lock",
         subcommand of perf.
@@@ -1664,8 -1693,6 +1673,8 @@@ config PROVIDE_OHCI1394_DMA_INI
  
          See Documentation/debugging-via-ohci1394.txt for more information.
  
 +source "lib/kunit/Kconfig"
 +
  menuconfig RUNTIME_TESTING_MENU
        bool "Runtime Testing"
        def_bool y
@@@ -1683,7 -1710,7 +1692,7 @@@ config LKDT
        called lkdtm.
  
        Documentation on how to use the module can be found in
 -      Documentation/fault-injection/provoke-crashes.txt
 +      Documentation/fault-injection/provoke-crashes.rst
  
  config TEST_LIST_SORT
        tristate "Linked list sorting test"
@@@ -1911,15 -1938,6 +1920,15 @@@ config TEST_BP
  
          If unsure, say N.
  
 +config TEST_BLACKHOLE_DEV
 +      tristate "Test blackhole netdev functionality"
 +      depends on m && NET
 +      help
 +        This builds the "test_blackhole_dev" module that validates the
 +        data path through this blackhole netdev.
 +
 +        If unsure, say N.
 +
  config FIND_BIT_BENCHMARK
        tristate "Test find_bit functions"
        help
@@@ -1950,35 -1968,6 +1959,35 @@@ config TEST_SYSCT
  
          If unsure, say N.
  
 +config SYSCTL_KUNIT_TEST
 +      bool "KUnit test for sysctl"
 +      depends on KUNIT
 +      help
 +        This builds the proc sysctl unit test, which runs on boot.
 +        Tests the API contract and implementation correctness of sysctl.
 +        For more information on KUnit and unit tests in general please refer
 +        to the KUnit documentation in Documentation/dev-tools/kunit/.
 +
 +        If unsure, say N.
 +
 +config LIST_KUNIT_TEST
 +      bool "KUnit Test for Kernel Linked-list structures"
 +      depends on KUNIT
 +      help
 +        This builds the linked list KUnit test suite.
 +        It tests that the API and basic functionality of the list_head type
 +        and associated macros.
 +
 +        KUnit tests run during boot and output the results to the debug log
 +        in TAP format (http://testanything.org/). Only useful for kernel devs
 +        running the KUnit test harness, and not intended for inclusion into a
 +        production build.
 +
 +        For more information on KUnit and unit tests in general please refer
 +        to the KUnit documentation in Documentation/dev-tools/kunit/.
 +
 +        If unsure, say N.
 +
  config TEST_UDELAY
        tristate "udelay test driver"
        help
@@@ -2080,14 -2069,6 +2089,14 @@@ config TEST_STACKINI
  
          If unsure, say N.
  
 +config TEST_MEMINIT
 +      tristate "Test heap/page initialization"
 +      help
 +        Test if the kernel is zero-initializing heap and page allocations.
 +        This can be useful to test init_on_alloc and init_on_free features.
 +
 +        If unsure, say N.
 +
  endif # RUNTIME_TESTING_MENU
  
  config MEMTEST
diff --combined lib/Makefile
index 890e581d00c465571bcb1472f9d61c8bad470e95,907759f28916b841ec2797e40b66a8697cb1c11b..3eea32105afce5beb240058624c2b5fa86a00e36
@@@ -21,6 -21,10 +21,6 @@@ KCOV_INSTRUMENT_dynamic_debug.o := 
  ifdef CONFIG_AMD_MEM_ENCRYPT
  KASAN_SANITIZE_string.o := n
  
 -ifdef CONFIG_FUNCTION_TRACER
 -CFLAGS_REMOVE_string.o = -pg
 -endif
 -
  CFLAGS_string.o := $(call cc-option, -fno-stack-protector)
  endif
  
@@@ -87,13 -91,9 +87,13 @@@ obj-$(CONFIG_TEST_DEBUG_VIRTUAL) += tes
  obj-$(CONFIG_TEST_MEMCAT_P) += test_memcat_p.o
  obj-$(CONFIG_TEST_OBJAGG) += test_objagg.o
  obj-$(CONFIG_TEST_STACKINIT) += test_stackinit.o
 +obj-$(CONFIG_TEST_BLACKHOLE_DEV) += test_blackhole_dev.o
 +obj-$(CONFIG_TEST_MEMINIT) += test_meminit.o
  
  obj-$(CONFIG_TEST_LIVEPATCH) += livepatch/
  
 +obj-$(CONFIG_KUNIT) += kunit/
 +
  ifeq ($(CONFIG_DEBUG_KOBJECT),y)
  CFLAGS_kobject.o += -DDEBUG
  CFLAGS_kobject_uevent.o += -DDEBUG
@@@ -183,6 -183,7 +183,7 @@@ lib-$(CONFIG_GENERIC_BUG) += bug.
  obj-$(CONFIG_HAVE_ARCH_TRACEHOOK) += syscall.o
  
  obj-$(CONFIG_DYNAMIC_DEBUG) += dynamic_debug.o
+ obj-$(CONFIG_SYMBOLIC_ERRNAME) += errname.o
  
  obj-$(CONFIG_NLATTR) += nlattr.o
  
@@@ -202,11 -203,12 +203,11 @@@ obj-$(CONFIG_GLOB) += glob.
  obj-$(CONFIG_GLOB_SELFTEST) += globtest.o
  
  obj-$(CONFIG_MPILIB) += mpi/
 +obj-$(CONFIG_DIMLIB) += dim/
  obj-$(CONFIG_SIGNATURE) += digsig.o
  
  lib-$(CONFIG_CLZ_TAB) += clz_tab.o
  
 -obj-$(CONFIG_DDR) += jedec_ddr_data.o
 -
  obj-$(CONFIG_GENERIC_STRNCPY_FROM_USER) += strncpy_from_user.o
  obj-$(CONFIG_GENERIC_STRNLEN_USER) += strnlen_user.o
  
@@@ -277,8 -279,7 +278,8 @@@ obj-$(CONFIG_UCS2_STRING) += ucs2_strin
  obj-$(CONFIG_UBSAN) += ubsan.o
  
  UBSAN_SANITIZE_ubsan.o := n
 -CFLAGS_ubsan.o := $(call cc-option, -fno-conserve-stack -fno-stack-protector)
 +KASAN_SANITIZE_ubsan.o := n
 +CFLAGS_ubsan.o := $(call cc-option, -fno-stack-protector) $(DISABLE_STACKLEAK_PLUGIN)
  
  obj-$(CONFIG_SBITMAP) += sbitmap.o
  
@@@ -292,6 -293,3 +293,6 @@@ obj-$(CONFIG_GENERIC_LIB_MULDI3) += mul
  obj-$(CONFIG_GENERIC_LIB_CMPDI2) += cmpdi2.o
  obj-$(CONFIG_GENERIC_LIB_UCMPDI2) += ucmpdi2.o
  obj-$(CONFIG_OBJAGG) += objagg.o
 +
 +# KUnit tests
 +obj-$(CONFIG_LIST_KUNIT_TEST) += list-test.o
diff --combined scripts/checkpatch.pl
index 6fcc66afb088083080a4b492be6af4b67d4c1430,f6a5a48e92c2df0e3ba591f726d14f31892f6fb5..4b40445938dc1c671337da1f8545cbfeb16e735f
@@@ -62,8 -62,6 +62,8 @@@ my $conststructsfile = "$D/const_struct
  my $typedefsfile = "";
  my $color = "auto";
  my $allow_c99_comments = 1; # Can be overridden by --ignore C99_COMMENT_TOLERANCE
 +# git output parsing needs US English output, so first set backtick child process LANGUAGE
 +my $git_command ='export LANGUAGE=en_US.UTF-8; git';
  
  sub help {
        my ($exitcode) = @_;
@@@ -906,7 -904,7 +906,7 @@@ sub seed_camelcase_includes 
        $camelcase_seeded = 1;
  
        if (-e ".git") {
 -              my $git_last_include_commit = `git log --no-merges --pretty=format:"%h%n" -1 -- include`;
 +              my $git_last_include_commit = `${git_command} log --no-merges --pretty=format:"%h%n" -1 -- include`;
                chomp $git_last_include_commit;
                $camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
        } else {
        }
  
        if (-e ".git") {
 -              $files = `git ls-files "include/*.h"`;
 +              $files = `${git_command} ls-files "include/*.h"`;
                @include_files = split('\n', $files);
        }
  
@@@ -958,13 -956,13 +958,13 @@@ sub git_commit_info 
  
        return ($id, $desc) if ((which("git") eq "") || !(-e ".git"));
  
 -      my $output = `git log --no-color --format='%H %s' -1 $commit 2>&1`;
 +      my $output = `${git_command} log --no-color --format='%H %s' -1 $commit 2>&1`;
        $output =~ s/^\s*//gm;
        my @lines = split("\n", $output);
  
        return ($id, $desc) if ($#lines < 0);
  
 -      if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous\./) {
 +      if ($lines[0] =~ /^error: short SHA1 $commit is ambiguous/) {
  # Maybe one day convert this block of bash into something that returns
  # all matching commit ids, but it's very slow...
  #
@@@ -1008,7 -1006,7 +1008,7 @@@ if ($git) 
                } else {
                        $git_range = "-1 $commit_expr";
                }
 -              my $lines = `git log --no-color --no-merges --pretty=format:'%H %s' $git_range`;
 +              my $lines = `${git_command} log --no-color --no-merges --pretty=format:'%H %s' $git_range`;
                foreach my $line (split(/\n/, $lines)) {
                        $line =~ /^([0-9a-fA-F]{40,40}) (.*)$/;
                        next if (!defined($1) || !defined($2));
@@@ -2727,10 -2725,8 +2727,10 @@@ sub process 
                    ($line =~ /^\s*(?:WARNING:|BUG:)/ ||
                     $line =~ /^\s*\[\s*\d+\.\d{6,6}\s*\]/ ||
                                        # timestamp
 -                   $line =~ /^\s*\[\<[0-9a-fA-F]{8,}\>\]/)) {
 -                                      # stack dump address
 +                   $line =~ /^\s*\[\<[0-9a-fA-F]{8,}\>\]/) ||
 +                   $line =~ /^(?:\s+\w+:\s+[0-9a-fA-F]+){3,3}/ ||
 +                   $line =~ /^\s*\#\d+\s*\[[0-9a-fA-F]+\]\s*\w+ at [0-9a-fA-F]+/) {
 +                                      # stack dump address styles
                        $commit_log_possible_stack_dump = 1;
                }
  
                        }
                }
  
 +# check for invalid commit id
 +              if ($in_commit_log && $line =~ /(^fixes:|\bcommit)\s+([0-9a-f]{6,40})\b/i) {
 +                      my $id;
 +                      my $description;
 +                      ($id, $description) = git_commit_info($2, undef, undef);
 +                      if (!defined($id)) {
 +                              WARN("UNKNOWN_COMMIT_ID",
 +                                   "Unknown commit id '$2', maybe rebased or not pulled?\n" . $herecurr);
 +                      }
 +              }
 +
  # ignore non-hunk lines and lines being removed
                next if (!$hunk_line || $line =~ /^-/);
  
  # check SPDX comment style for .[chsS] files
                                if ($realfile =~ /\.[chsS]$/ &&
                                    $rawline =~ /SPDX-License-Identifier:/ &&
 -                                  $rawline !~ /^\+\s*\Q$comment\E\s*/) {
 +                                  $rawline !~ m@^\+\s*\Q$comment\E\s*@) {
                                        WARN("SPDX_LICENSE_TAG",
                                             "Improper SPDX comment style for '$realfile', please use '$comment' instead\n" . $herecurr);
                                }
  
                                if ($comment !~ /^$/ &&
 -                                  $rawline !~ /^\+\Q$comment\E SPDX-License-Identifier: /) {
 -                                       WARN("SPDX_LICENSE_TAG",
 -                                            "Missing or malformed SPDX-License-Identifier tag in line $checklicenseline\n" . $herecurr);
 +                                  $rawline !~ m@^\+\Q$comment\E SPDX-License-Identifier: @) {
 +                                      WARN("SPDX_LICENSE_TAG",
 +                                           "Missing or malformed SPDX-License-Identifier tag in line $checklicenseline\n" . $herecurr);
                                } elsif ($rawline =~ /(SPDX-License-Identifier: .*)/) {
 -                                       my $spdx_license = $1;
 -                                       if (!is_SPDX_License_valid($spdx_license)) {
 -                                                WARN("SPDX_LICENSE_TAG",
 -                                                     "'$spdx_license' is not supported in LICENSES/...\n" . $herecurr);
 -                                       }
 +                                      my $spdx_license = $1;
 +                                      if (!is_SPDX_License_valid($spdx_license)) {
 +                                              WARN("SPDX_LICENSE_TAG",
 +                                                   "'$spdx_license' is not supported in LICENSES/...\n" . $herecurr);
 +                                      }
                                }
                        }
                }
  
  # closing brace should have a space following it when it has anything
  # on the line
 -              if ($line =~ /}(?!(?:,|;|\)))\S/) {
 +              if ($line =~ /}(?!(?:,|;|\)|\}))\S/) {
                        if (ERROR("SPACING",
                                  "space required after that close brace '}'\n" . $herecurr) &&
                            $fix) {
                                next if ($arg =~ /\.\.\./);
                                next if ($arg =~ /^type$/i);
                                my $tmp_stmt = $define_stmt;
 -                              $tmp_stmt =~ s/\b(typeof|__typeof__|__builtin\w+|typecheck\s*\(\s*$Type\s*,|\#+)\s*\(*\s*$arg\s*\)*\b//g;
 +                              $tmp_stmt =~ s/\b(sizeof|typeof|__typeof__|__builtin\w+|typecheck\s*\(\s*$Type\s*,|\#+)\s*\(*\s*$arg\s*\)*\b//g;
                                $tmp_stmt =~ s/\#+\s*$arg\b//g;
                                $tmp_stmt =~ s/\b$arg\s*\#\#//g;
                                my $use_cnt = () = $tmp_stmt =~ /\b$arg\b/g;
                        # ignore udelay's < 10, however
                        if (! ($delay < 10) ) {
                                CHK("USLEEP_RANGE",
 -                                  "usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt\n" . $herecurr);
 +                                  "usleep_range is preferred over udelay; see Documentation/timers/timers-howto.rst\n" . $herecurr);
                        }
                        if ($delay > 2000) {
                                WARN("LONG_UDELAY",
                if ($line =~ /\bmsleep\s*\((\d+)\);/) {
                        if ($1 < 20) {
                                WARN("MSLEEP",
 -                                   "msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt\n" . $herecurr);
 +                                   "msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.rst\n" . $herecurr);
                        }
                }
  
                             "__aligned(size) is preferred over __attribute__((aligned(size)))\n" . $herecurr);
                }
  
 +# Check for __attribute__ section, prefer __section
 +              if ($realfile !~ m@\binclude/uapi/@ &&
 +                  $line =~ /\b__attribute__\s*\(\s*\(.*_*section_*\s*\(\s*("[^"]*")/) {
 +                      my $old = substr($rawline, $-[1], $+[1] - $-[1]);
 +                      my $new = substr($old, 1, -1);
 +                      if (WARN("PREFER_SECTION",
 +                               "__section($new) is preferred over __attribute__((section($old)))\n" . $herecurr) &&
 +                          $fix) {
 +                              $fixed[$fixlinenr] =~ s/\b__attribute__\s*\(\s*\(\s*_*section_*\s*\(\s*\Q$old\E\s*\)\s*\)\s*\)/__section($new)/;
 +                      }
 +              }
 +
  # Check for __attribute__ format(printf, prefer __printf
                if ($realfile !~ m@\binclude/uapi/@ &&
                    $line =~ /\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf/) {
                                while ($fmt =~ /(\%[\*\d\.]*p(\w))/g) {
                                        $specifier = $1;
                                        $extension = $2;
-                                       if ($extension !~ /[SsBKRraEhMmIiUDdgVCbGNOxt]/) {
+                                       if ($extension !~ /[SsBKRraEehMmIiUDdgVCbGNOxt]/) {
                                                $bad_specifier = $specifier;
                                                last;
                                        }
                        my $max = $7;
                        if ($min eq $max) {
                                WARN("USLEEP_RANGE",
 -                                   "usleep_range should not use min == max args; see Documentation/timers/timers-howto.txt\n" . "$here\n$stat\n");
 +                                   "usleep_range should not use min == max args; see Documentation/timers/timers-howto.rst\n" . "$here\n$stat\n");
                        } elsif ($min =~ /^\d+$/ && $max =~ /^\d+$/ &&
                                 $min > $max) {
                                WARN("USLEEP_RANGE",
 -                                   "usleep_range args reversed, use min then max; see Documentation/timers/timers-howto.txt\n" . "$here\n$stat\n");
 +                                   "usleep_range args reversed, use min then max; see Documentation/timers/timers-howto.rst\n" . "$here\n$stat\n");
                        }
                }
  
                             "Using $1 should generally have parentheses around the comparison\n" . $herecurr);
                }
  
 +# nested likely/unlikely calls
 +              if ($line =~ /\b(?:(?:un)?likely)\s*\(\s*!?\s*(IS_ERR(?:_OR_NULL|_VALUE)?|WARN)/) {
 +                      WARN("LIKELY_MISUSE",
 +                           "nested (un)?likely() calls, $1 already uses unlikely() internally\n" . $herecurr);
 +              }
 +
  # whine mightly about in_atomic
                if ($line =~ /\bin_atomic\s*\(/) {
                        if ($realfile =~ m@^drivers/@) {
                                     "unknown module license " . $extracted_string . "\n" . $herecurr);
                        }
                }
 +
 +# check for sysctl duplicate constants
 +              if ($line =~ /\.extra[12]\s*=\s*&(zero|one|int_max)\b/) {
 +                      WARN("DUPLICATED_SYSCTL_CONST",
 +                              "duplicated sysctl range checking value '$1', consider using the shared one in include/linux/sysctl.h\n" . $herecurr);
 +              }
        }
  
        # If we have no input at all, then there is nothing to report on
This page took 0.544391 seconds and 4 git commands to generate.