Merge tag 'riscv-for-linus-5.12-mw0' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 26 Feb 2021 18:28:35 +0000 (10:28 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 26 Feb 2021 18:28:35 +0000 (10:28 -0800)
Pull RISC-V updates from Palmer Dabbelt:
 "A handful of new RISC-V related patches for this merge window:

   - A check to ensure drivers are properly using uaccess. This isn't
     manifesting with any of the drivers I'm currently using, but may
     catch errors in new drivers.

   - Some preliminary support for the FU740, along with the HiFive
     Unleashed it will appear on.

   - NUMA support for RISC-V, which involves making the arm64 code
     generic.

   - Support for kasan on the vmalloc region.

   - A handful of new drivers for the Kendryte K210, along with the DT
     plumbing required to boot on a handful of K210-based boards.

   - Support for allocating ASIDs.

   - Preliminary support for kernels larger than 128MiB.

   - Various other improvements to our KASAN support, including the
     utilization of huge pages when allocating the KASAN regions.

  We may have already found a bug with the KASAN_VMALLOC code, but it's
  passing my tests. There's a fix in the works, but that will probably
  miss the merge window.

* tag 'riscv-for-linus-5.12-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (75 commits)
  riscv: Improve kasan population by using hugepages when possible
  riscv: Improve kasan population function
  riscv: Use KASAN_SHADOW_INIT define for kasan memory initialization
  riscv: Improve kasan definitions
  riscv: Get rid of MAX_EARLY_MAPPING_SIZE
  soc: canaan: Sort the Makefile alphabetically
  riscv: Disable KSAN_SANITIZE for vDSO
  riscv: Remove unnecessary declaration
  riscv: Add Canaan Kendryte K210 SD card defconfig
  riscv: Update Canaan Kendryte K210 defconfig
  riscv: Add Kendryte KD233 board device tree
  riscv: Add SiPeed MAIXDUINO board device tree
  riscv: Add SiPeed MAIX GO board device tree
  riscv: Add SiPeed MAIX DOCK board device tree
  riscv: Add SiPeed MAIX BiT board device tree
  riscv: Update Canaan Kendryte K210 device tree
  dt-bindings: add resets property to dw-apb-timer
  dt-bindings: fix sifive gpio properties
  dt-bindings: update sifive uart compatible string
  dt-bindings: update sifive clint compatible string
  ...

22 files changed:
1  2 
Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml
MAINTAINERS
arch/arm64/Kconfig
arch/arm64/mm/Makefile
arch/arm64/mm/init.c
arch/riscv/Kconfig
arch/riscv/include/asm/page.h
arch/riscv/include/asm/pgtable.h
arch/riscv/include/asm/set_memory.h
arch/riscv/kernel/setup.c
arch/riscv/kernel/stacktrace.c
arch/riscv/mm/init.c
arch/riscv/mm/kasan_init.c
drivers/base/Kconfig
drivers/clk/Kconfig
drivers/clk/Makefile
drivers/pinctrl/Kconfig
drivers/pinctrl/Makefile
drivers/reset/Kconfig
drivers/soc/Kconfig
drivers/soc/Makefile
init/initramfs.c

index 2ece8630dc681fd76d4e23da96e905fb265077fb,6a576dce1f315b40e68865ccbd239577e2e84c96..23b227614366748ae69accd1bf1cadff54e292cd
@@@ -27,6 -27,7 +27,7 @@@ select
        items:
          - enum:
              - sifive,fu540-c000-ccache
+             - sifive,fu740-c000-ccache
  
    required:
      - compatible
@@@ -34,7 -35,9 +35,9 @@@
  properties:
    compatible:
      items:
-       - const: sifive,fu540-c000-ccache
+       - enum:
+           - sifive,fu540-c000-ccache
+           - sifive,fu740-c000-ccache
        - const: cache
  
    cache-block-size:
    cache-unified: true
  
    interrupts:
-     description: |
-       Must contain entries for DirError, DataError and DataFail signals.
      minItems: 3
-     maxItems: 3
+     maxItems: 4
+     items:
+       - description: DirError interrupt
+       - description: DataError interrupt
+       - description: DataFail interrupt
+       - description: DirFail interrupt
  
    reg:
      maxItems: 1
    next-level-cache: true
  
    memory-region:
 +    maxItems: 1
      description: |
        The reference to the reserved-memory for the L2 Loosely Integrated Memory region.
        The reserved memory node should be defined as per the bindings in reserved-memory.txt.
  
+ if:
+   properties:
+     compatible:
+       contains:
+         const: sifive,fu540-c000-ccache
+ then:
+   properties:
+     interrupts:
+       description: |
+         Must contain entries for DirError, DataError and DataFail signals.
+       maxItems: 3
+ else:
+   properties:
+     interrupts:
+       description: |
+         Must contain entries for DirError, DataError, DataFail, DirFail signals.
+       minItems: 4
  additionalProperties: false
  
  required:
diff --combined MAINTAINERS
index 498cc779e354b5acceeff547cfbeb83935994029,467c8670d815ae92ea08471e0d41f6bd14d7c28e..d92f85ca831d30d658fef768575ba538be4d4b93
@@@ -203,8 -203,8 +203,8 @@@ F: include/uapi/linux/nl80211.
  F:    net/wireless/
  
  8169 10/100/1000 GIGABIT ETHERNET DRIVER
 -M:    Realtek linux nic maintainers <nic_swsd@realtek.com>
  M:    Heiner Kallweit <hkallweit1@gmail.com>
 +M:    nic_swsd@realtek.com
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/realtek/r8169*
@@@ -261,8 -261,6 +261,8 @@@ ABI/AP
  L:    linux-api@vger.kernel.org
  F:    include/linux/syscalls.h
  F:    kernel/sys_ni.c
 +F:    include/uapi/
 +F:    arch/*/include/uapi/
  
  ABIT UGURU 1,2 HARDWARE MONITOR DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
@@@ -438,15 -436,6 +438,15 @@@ S:       Orpha
  F:    drivers/platform/x86/wmi.c
  F:    include/uapi/linux/wmi.h
  
 +ACRN HYPERVISOR SERVICE MODULE
 +M:    Shuo Liu <shuo.a.liu@intel.com>
 +L:    acrn-dev@lists.projectacrn.org (subscribers-only)
 +S:    Supported
 +W:    https://projectacrn.org
 +F:    Documentation/virt/acrn/
 +F:    drivers/virt/acrn/
 +F:    include/uapi/linux/acrn.h
 +
  AD1889 ALSA SOUND DRIVER
  L:    linux-parisc@vger.kernel.org
  S:    Maintained
@@@ -710,8 -699,7 +710,8 @@@ M: Michael Tretter <m.tretter@pengutron
  R:    Pengutronix Kernel Team <kernel@pengutronix.de>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 -F:    drivers/staging/media/allegro-dvt/
 +F:    Documentation/devicetree/bindings/media/allegro,al5e.yaml
 +F:    drivers/media/platform/allegro-dvt/
  
  ALLWINNER A10 CSI DRIVER
  M:    Maxime Ripard <mripard@kernel.org>
@@@ -832,6 -820,7 +832,6 @@@ M: Netanel Belgazal <netanel@amazon.com
  M:    Arthur Kiyanovski <akiyano@amazon.com>
  R:    Guy Tzalik <gtzalik@amazon.com>
  R:    Saeed Bishara <saeedb@amazon.com>
 -R:    Zorik Machulsky <zorik@amazon.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    Documentation/networking/device_drivers/ethernet/amazon/ena.rst
@@@ -918,7 -907,7 +918,7 @@@ AMD KF
  M:    Felix Kuehling <Felix.Kuehling@amd.com>
  L:    amd-gfx@lists.freedesktop.org
  S:    Supported
 -T:    git git://people.freedesktop.org/~agd5f/linux
 +T:    git https://gitlab.freedesktop.org/agd5f/linux.git
  F:    drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd*.[ch]
  F:    drivers/gpu/drm/amd/amdkfd/
  F:    drivers/gpu/drm/amd/include/cik_structs.h
@@@ -1028,7 -1017,7 +1028,7 @@@ F:      Documentation/devicetree/bindings/mu
  F:    drivers/mux/adgs1408.c
  
  ANALOG DEVICES INC ADIN DRIVER
 -M:    Alexandru Ardelean <alexaundru.ardelean@analog.com>
 +M:    Michael Hennerich <michael.hennerich@analog.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://ez.analog.com/community/linux-device-drivers
@@@ -1036,7 -1025,7 +1036,7 @@@ F:      Documentation/devicetree/bindings/ne
  F:    drivers/net/phy/adin.c
  
  ANALOG DEVICES INC ADIS DRIVER LIBRARY
 -M:    Alexandru Ardelean <alexandru.ardelean@analog.com>
 +M:    Nuno Sa <nuno.sa@analog.com>
  L:    linux-iio@vger.kernel.org
  S:    Supported
  F:    drivers/iio/imu/adis.c
@@@ -1425,6 -1414,7 +1425,6 @@@ F:      arch/arm*/include/asm/hw_breakpoint.
  F:    arch/arm*/include/asm/perf_event.h
  F:    arch/arm*/kernel/hw_breakpoint.c
  F:    arch/arm*/kernel/perf_*
 -F:    arch/arm/oprofile/common.c
  F:    drivers/perf/
  F:    include/linux/perf/arm_pmu.h
  
@@@ -1522,7 -1512,6 +1522,7 @@@ ARM/ACTIONS SEMI ARCHITECTUR
  M:    Andreas Färber <afaerber@suse.de>
  M:    Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +L:    linux-actions@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/actions.yaml
  F:    Documentation/devicetree/bindings/clock/actions,owl-cmu.txt
@@@ -1790,6 -1779,19 +1790,6 @@@ F:     drivers/net/ethernet/cortina
  F:    drivers/pinctrl/pinctrl-gemini.c
  F:    drivers/rtc/rtc-ftrtc010.c
  
 -ARM/CSR SIRFPRIMA2 MACHINE SUPPORT
 -M:    Barry Song <baohua@kernel.org>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git
 -F:    arch/arm/boot/dts/prima2*
 -F:    arch/arm/mach-prima2/
 -F:    drivers/clk/sirf/
 -F:    drivers/clocksource/timer-atlas7.c
 -F:    drivers/clocksource/timer-prima2.c
 -X:    drivers/gnss
 -N:    [^a-z]sirf
 -
  ARM/CZ.NIC TURRIS MOX SUPPORT
  M:    Marek Behun <marek.behun@nic.cz>
  S:    Maintained
@@@ -1805,6 -1807,13 +1805,6 @@@ F:     drivers/firmware/turris-mox-rwtm.
  F:    drivers/gpio/gpio-moxtet.c
  F:    include/linux/moxtet.h
  
 -ARM/ENERGY MICRO (SILICON LABS) EFM32 SUPPORT
 -M:    Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
 -R:    Pengutronix Kernel Team <kernel@pengutronix.de>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 -N:    efm32
 -
  ARM/EZX SMARTPHONES (A780, A910, A1200, E680, ROKR E2 and ROKR E6)
  M:    Robert Jarzmik <robert.jarzmik@free.fr>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -2082,7 -2091,7 +2082,7 @@@ M:      Chunfeng Yun <chunfeng.yun@mediatek.
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/phy/phy-mtk-*
 +F:    Documentation/devicetree/bindings/phy/mediatek,*
  F:    drivers/phy/mediatek/
  
  ARM/Microchip (AT91) SoC support
@@@ -2110,7 -2119,7 +2110,7 @@@ N:      atme
  ARM/Microchip Sparx5 SoC support
  M:    Lars Povlsen <lars.povlsen@microchip.com>
  M:    Steen Hegelund <Steen.Hegelund@microchip.com>
 -M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
 +M:    UNGLinuxDriver@microchip.com
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Supported
  T:    git git://github.com/microchip-ung/linux-upstream.git
@@@ -2137,20 -2146,17 +2137,20 @@@ L:   linux-arm-kernel@lists.infradead.or
  S:    Maintained
  W:    http://linux-chenxing.org/
  F:    Documentation/devicetree/bindings/arm/mstar/*
 +F:    Documentation/devicetree/bindings/clock/mstar,msc313-mpll.yaml
  F:    Documentation/devicetree/bindings/gpio/mstar,msc313-gpio.yaml
  F:    arch/arm/boot/dts/mstar-*
  F:    arch/arm/mach-mstar/
 +F:    drivers/clk/mstar/
  F:    drivers/gpio/gpio-msc313.c
 +F:    include/dt-bindings/clock/mstar-*
  F:    include/dt-bindings/gpio/msc313-gpio.h
  
  ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT
  M:    Michael Petchkovsky <mkpetch@internode.on.net>
  S:    Maintained
  
 -ARM/NOMADIK/U300/Ux500 ARCHITECTURES
 +ARM/NOMADIK/Ux500 ARCHITECTURES
  M:    Linus Walleij <linus.walleij@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
@@@ -2159,23 -2165,35 +2159,23 @@@ F:   Documentation/devicetree/bindings/ar
  F:    Documentation/devicetree/bindings/arm/ux500.yaml
  F:    Documentation/devicetree/bindings/arm/ux500/
  F:    Documentation/devicetree/bindings/i2c/i2c-nomadik.txt
 -F:    Documentation/devicetree/bindings/i2c/i2c-stu300.txt
  F:    arch/arm/boot/dts/ste-*
  F:    arch/arm/mach-nomadik/
 -F:    arch/arm/mach-u300/
  F:    arch/arm/mach-ux500/
  F:    drivers/clk/clk-nomadik.c
 -F:    drivers/clk/clk-u300.c
  F:    drivers/clocksource/clksrc-dbx500-prcmu.c
 -F:    drivers/clocksource/timer-u300.c
 -F:    drivers/dma/coh901318*
  F:    drivers/dma/ste_dma40*
  F:    drivers/hwspinlock/u8500_hsem.c
  F:    drivers/i2c/busses/i2c-nomadik.c
 -F:    drivers/i2c/busses/i2c-stu300.c
  F:    drivers/iio/adc/ab8500-gpadc.c
 -F:    drivers/mfd/ab3100*
  F:    drivers/mfd/ab8500*
  F:    drivers/mfd/abx500*
  F:    drivers/mfd/db8500*
  F:    drivers/mfd/dbx500*
  F:    drivers/pinctrl/nomadik/
 -F:    drivers/pinctrl/pinctrl-coh901*
 -F:    drivers/pinctrl/pinctrl-u300.c
 -F:    drivers/rtc/rtc-ab3100.c
  F:    drivers/rtc/rtc-ab8500.c
 -F:    drivers/rtc/rtc-coh901331.c
  F:    drivers/rtc/rtc-pl031.c
  F:    drivers/soc/ux500/
 -F:    drivers/watchdog/coh901327_wdt.c
  
  ARM/NUVOTON NPCM ARCHITECTURE
  M:    Avi Fishman <avifishman70@gmail.com>
@@@ -2397,8 -2415,6 +2397,8 @@@ F:      drivers/*/*s5pv210
  F:    drivers/memory/samsung/
  F:    drivers/soc/samsung/
  F:    drivers/tty/serial/samsung*
 +F:    include/linux/platform_data/*s3c*
 +F:    include/linux/serial_s3c.h
  F:    include/linux/soc/samsung/
  N:    exynos
  N:    s3c2410
@@@ -2542,6 -2558,13 +2542,6 @@@ F:     arch/arm/boot/dts/berlin
  F:    arch/arm/mach-berlin/
  F:    arch/arm64/boot/dts/synaptics/
  
 -ARM/TANGO ARCHITECTURE
 -M:    Marc Gonzalez <marc.w.gonzalez@free.fr>
 -M:    Mans Rullgard <mans@mansr.com>
 -L:    linux-arm-kernel@lists.infradead.org
 -S:    Odd Fixes
 -N:    tango
 -
  ARM/TECHNOLOGIC SYSTEMS TS7250 MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -2580,7 -2603,7 +2580,7 @@@ L:      linux-kernel@vger.kernel.or
  S:    Maintained
  F:    drivers/clk/keystone/
  
 -ARM/TEXAS INSTRUMENT KEYSTONE ClOCKSOURCE
 +ARM/TEXAS INSTRUMENT KEYSTONE CLOCKSOURCE
  M:    Santosh Shilimkar <ssantosh@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-kernel@vger.kernel.org
@@@ -2594,8 -2617,8 +2594,8 @@@ S:      Maintaine
  F:    drivers/power/reset/keystone-reset.c
  
  ARM/TEXAS INSTRUMENTS K3 ARCHITECTURE
 -M:    Tero Kristo <t-kristo@ti.com>
  M:    Nishanth Menon <nm@ti.com>
 +M:    Tero Kristo <kristo@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Supported
  F:    Documentation/devicetree/bindings/arm/ti/k3.yaml
@@@ -2619,15 -2642,9 +2619,15 @@@ L:    linux-arm-kernel@lists.infradead.or
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwamatsu/linux-visconti.git
  F:    Documentation/devicetree/bindings/arm/toshiba.yaml
 +F:    Documentation/devicetree/bindings/net/toshiba,visconti-dwmac.yaml
 +F:    Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml
  F:    Documentation/devicetree/bindings/pinctrl/toshiba,tmpv7700-pinctrl.yaml
 +F:    Documentation/devicetree/bindings/watchdog/toshiba,visconti-wdt.yaml
  F:    arch/arm64/boot/dts/toshiba/
 +F:    drivers/net/ethernet/stmicro/stmmac/dwmac-visconti.c
 +F:    drivers/gpio/gpio-visconti.c
  F:    drivers/pinctrl/visconti/
 +F:    drivers/watchdog/visconti_wdt.c
  N:    visconti
  
  ARM/UNIPHIER ARCHITECTURE
@@@ -2707,6 -2724,40 +2707,6 @@@ S:     Maintaine
  F:    arch/arm/mach-pxa/include/mach/z2.h
  F:    arch/arm/mach-pxa/z2.c
  
 -ARM/ZTE ARCHITECTURE
 -M:    Jun Nie <jun.nie@linaro.org>
 -M:    Shawn Guo <shawnguo@kernel.org>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 -F:    Documentation/devicetree/bindings/arm/zte.yaml
 -F:    Documentation/devicetree/bindings/clock/zx2967*.txt
 -F:    Documentation/devicetree/bindings/dma/zxdma.txt
 -F:    Documentation/devicetree/bindings/gpio/zx296702-gpio.txt
 -F:    Documentation/devicetree/bindings/i2c/i2c-zx2967.txt
 -F:    Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt
 -F:    Documentation/devicetree/bindings/pinctrl/pinctrl-zx.txt
 -F:    Documentation/devicetree/bindings/reset/zte,zx2967-reset.txt
 -F:    Documentation/devicetree/bindings/soc/zte/
 -F:    Documentation/devicetree/bindings/sound/zte,*.txt
 -F:    Documentation/devicetree/bindings/thermal/zx2967-thermal.txt
 -F:    Documentation/devicetree/bindings/watchdog/zte,zx2967-wdt.txt
 -F:    arch/arm/boot/dts/zx2967*
 -F:    arch/arm/mach-zx/
 -F:    arch/arm64/boot/dts/zte/
 -F:    drivers/clk/zte/
 -F:    drivers/dma/zx_dma.c
 -F:    drivers/gpio/gpio-zx.c
 -F:    drivers/i2c/busses/i2c-zx2967.c
 -F:    drivers/mmc/host/dw_mmc-zx.*
 -F:    drivers/pinctrl/zte/
 -F:    drivers/soc/zte/
 -F:    drivers/thermal/zx2967_thermal.c
 -F:    drivers/watchdog/zx2967_wdt.c
 -F:    include/dt-bindings/clock/zx2967*.h
 -F:    include/dt-bindings/soc/zte,*.h
 -F:    sound/soc/codecs/zx_aud96p22.c
 -F:    sound/soc/zte/
 -
  ARM/ZYNQ ARCHITECTURE
  M:    Michal Simek <michal.simek@xilinx.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -2715,7 -2766,6 +2715,7 @@@ W:      http://wiki.xilinx.co
  T:    git https://github.com/Xilinx/linux-xlnx.git
  F:    Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml
  F:    Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml
 +F:    Documentation/devicetree/bindings/spi/xlnx,zynq-qspi.yaml
  F:    arch/arm/mach-zynq/
  F:    drivers/block/xsysace.c
  F:    drivers/clocksource/timer-cadence-ttc.c
@@@ -2738,14 -2788,6 +2738,14 @@@ F:    arch/arm64
  F:    tools/testing/selftests/arm64/
  X:    arch/arm64/boot/dts/
  
 +ARROW SPEEDCHIPS XRS7000 SERIES ETHERNET SWITCH DRIVER
 +M:    George McCollister <george.mccollister@gmail.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
 +F:    drivers/net/dsa/xrs700x/*
 +F:    net/dsa/tag_xrs700x.c
 +
  AS3645A LED FLASH CONTROLLER DRIVER
  M:    Sakari Ailus <sakari.ailus@iki.fi>
  L:    linux-leds@vger.kernel.org
@@@ -2791,15 -2833,6 +2791,15 @@@ F:    Documentation/devicetree/bindings/in
  F:    drivers/irqchip/irq-aspeed-scu-ic.c
  F:    include/dt-bindings/interrupt-controller/aspeed-scu-ic.h
  
 +ASPEED SD/MMC DRIVER
 +M:    Andrew Jeffery <andrew@aj.id.au>
 +L:    linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
 +L:    openbmc@lists.ozlabs.org (moderated for non-subscribers)
 +L:    linux-mmc@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml
 +F:    drivers/mmc/host/sdhci-of-aspeed*
 +
  ASPEED VIDEO ENGINE DRIVER
  M:    Eddie James <eajames@linux.ibm.com>
  L:    linux-media@vger.kernel.org
@@@ -2839,7 -2872,9 +2839,7 @@@ S:      Odd fixe
  W:    http://sourceforge.net/projects/xscaleiop
  F:    Documentation/crypto/async-tx-api.rst
  F:    crypto/async_tx/
 -F:    drivers/dma/
  F:    include/linux/async_tx.h
 -F:    include/linux/dmaengine.h
  
  AT24 EEPROM DRIVER
  M:    Bartosz Golaszewski <bgolaszewski@baylibre.com>
@@@ -2907,6 -2942,7 +2907,6 @@@ S:      Maintaine
  F:    drivers/hwmon/asus_atk0110.c
  
  ATLX ETHERNET DRIVERS
 -M:    Jay Cliburn <jcliburn@gmail.com>
  M:    Chris Snook <chris.snook@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
@@@ -2984,7 -3020,7 +2984,7 @@@ F:      include/uapi/linux/audit.
  F:    kernel/audit*
  
  AUXILIARY DISPLAY DRIVERS
 -M:    Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
 +M:    Miguel Ojeda <ojeda@kernel.org>
  S:    Maintained
  F:    drivers/auxdisplay/
  F:    include/linux/cfag12864b.h
@@@ -3205,7 -3241,6 +3205,7 @@@ L:      netdev@vger.kernel.or
  S:    Supported
  W:    http://sourceforge.net/projects/bonding/
  F:    drivers/net/bonding/
 +F:    include/net/bonding.h
  F:    include/uapi/linux/if_bonding.h
  
  BOSCH SENSORTEC BMA400 ACCELEROMETER IIO DRIVER
@@@ -3301,7 -3336,7 +3301,7 @@@ F:      arch/riscv/net
  X:    arch/riscv/net/bpf_jit_comp64.c
  
  BPF JIT for RISC-V (64-bit)
 -M:    Björn Töpel <bjorn.topel@gmail.com>
 +M:    Björn Töpel <bjorn@kernel.org>
  L:    netdev@vger.kernel.org
  L:    bpf@vger.kernel.org
  S:    Maintained
@@@ -3365,7 -3400,6 +3365,7 @@@ L:      openwrt-devel@lists.openwrt.org (sub
  S:    Supported
  F:    Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
  F:    drivers/net/dsa/b53/*
 +F:    include/linux/dsa/brcm.h
  F:    include/linux/platform_data/b53.h
  
  BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE
@@@ -3379,7 -3413,7 +3379,7 @@@ F:      Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/pcie-brcmstb.c
  F:    drivers/staging/vc04_services
  N:    bcm2711
 -N:    bcm2835
 +N:    bcm283*
  
  BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
  M:    Florian Fainelli <f.fainelli@gmail.com>
@@@ -3403,15 -3437,6 +3403,15 @@@ F:    Documentation/devicetree/bindings/mi
  F:    arch/mips/bcm47xx/*
  F:    arch/mips/include/asm/mach-bcm47xx/*
  
 +BROADCOM BCM4908 ETHERNET DRIVER
 +M:    RafaĹ‚ MiĹ‚ecki <rafal@milecki.pl>
 +M:    bcm-kernel-feedback-list@broadcom.com
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/brcm,bcm4908-enet.yaml
 +F:    drivers/net/ethernet/broadcom/bcm4908_enet.*
 +F:    drivers/net/ethernet/broadcom/unimac.h
 +
  BROADCOM BCM5301X ARM ARCHITECTURE
  M:    Hauke Mehrtens <hauke@hauke-m.de>
  M:    RafaĹ‚ MiĹ‚ecki <zajec5@gmail.com>
@@@ -3531,7 -3556,7 +3531,7 @@@ S:      Supporte
  F:    drivers/net/ethernet/broadcom/bnxt/
  
  BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
 -M:    Arend van Spriel <arend.vanspriel@broadcom.com>
 +M:    Arend van Spriel <aspriel@gmail.com>
  M:    Franky Lin <franky.lin@broadcom.com>
  M:    Hante Meuleman <hante.meuleman@broadcom.com>
  M:    Chi-hsien Lin <chi-hsien.lin@infineon.com>
@@@ -3600,7 -3625,6 +3600,7 @@@ S:      Supporte
  F:    Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
  F:    Documentation/devicetree/bindings/net/brcm,unimac-mdio.txt
  F:    drivers/net/ethernet/broadcom/genet/
 +F:    drivers/net/ethernet/broadcom/unimac.h
  F:    drivers/net/mdio/mdio-bcm-unimac.c
  F:    include/linux/platform_data/bcmgenet.h
  F:    include/linux/platform_data/mdio-bcm-unimac.h
@@@ -3634,15 -3658,6 +3634,15 @@@ N:    bcm8831
  N:    hr2
  N:    stingray
  
 +BROADCOM IPROC GBIT ETHERNET DRIVER
 +M:    RafaĹ‚ MiĹ‚ecki <rafal@milecki.pl>
 +M:    bcm-kernel-feedback-list@broadcom.com
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/brcm,amac.txt
 +F:    drivers/net/ethernet/broadcom/bgmac*
 +F:    drivers/net/ethernet/broadcom/unimac.h
 +
  BROADCOM KONA GPIO DRIVER
  M:    Ray Jui <rjui@broadcom.com>
  L:    bcm-kernel-feedback-list@broadcom.com
@@@ -3668,16 -3683,6 +3668,16 @@@ L:    linux-mips@vger.kernel.or
  S:    Maintained
  F:    drivers/firmware/broadcom/*
  
 +BROADCOM PMB (POWER MANAGEMENT BUS) DRIVER
 +M:    RafaĹ‚ MiĹ‚ecki <rafal@milecki.pl>
 +M:    Florian Fainelli <f.fainelli@gmail.com>
 +M:    bcm-kernel-feedback-list@broadcom.com
 +L:    linux-pm@vger.kernel.org
 +S:    Maintained
 +T:    git git://github.com/broadcom/stblinux.git
 +F:    drivers/soc/bcm/bcm-pmb.c
 +F:    include/dt-bindings/soc/bcm-pmb.h
 +
  BROADCOM SPECIFIC AMBA DRIVER (BCMA)
  M:    RafaĹ‚ MiĹ‚ecki <zajec5@gmail.com>
  L:    linux-wireless@vger.kernel.org
@@@ -3732,7 -3737,6 +3732,7 @@@ L:      bcm-kernel-feedback-list@broadcom.co
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bcmsysport.*
 +F:    drivers/net/ethernet/broadcom/unimac.h
  
  BROADCOM TG3 GIGABIT ETHERNET DRIVER
  M:    Siva Reddy Kallam <siva.kallam@broadcom.com>
@@@ -3742,13 -3746,6 +3742,13 @@@ L:    netdev@vger.kernel.or
  S:    Supported
  F:    drivers/net/ethernet/broadcom/tg3.*
  
 +BROADCOM VK DRIVER
 +M:    Scott Branden <scott.branden@broadcom.com>
 +L:    bcm-kernel-feedback-list@broadcom.com
 +S:    Supported
 +F:    drivers/misc/bcm-vk/
 +F:    include/uapi/linux/misc/bcm_vk.h
 +
  BROCADE BFA FC SCSI DRIVER
  M:    Anil Gurumurthy <anil.gurumurthy@qlogic.com>
  M:    Sudarsana Kalluru <sudarsana.kalluru@qlogic.com>
@@@ -3847,6 -3844,14 +3847,6 @@@ F:     drivers/irqchip/irq-csky-
  N:    csky
  K:    csky
  
 -C6X ARCHITECTURE
 -M:    Mark Salter <msalter@redhat.com>
 -M:    Aurelien Jacquiot <jacquiot.aurelien@gmail.com>
 -L:    linux-c6x-dev@linux-c6x.org
 -S:    Maintained
 -W:    http://www.linux-c6x.org/wiki/index.php/Main_Page
 -F:    arch/c6x/
 -
  CA8210 IEEE-802.15.4 RADIO DRIVER
  M:    Harry Morris <h.morris@cascoda.com>
  L:    linux-wpan@vger.kernel.org
@@@ -3855,6 -3860,29 +3855,29 @@@ W:    https://github.com/Cascoda/ca8210-li
  F:    Documentation/devicetree/bindings/net/ieee802154/ca8210.txt
  F:    drivers/net/ieee802154/ca8210.c
  
+ CANAAN/KENDRYTE K210 SOC FPIOA DRIVER
+ M:    Damien Le Moal <damien.lemoal@wdc.com>
+ L:    linux-riscv@lists.infradead.org
+ L:    linux-gpio@vger.kernel.org (pinctrl driver)
+ F:    Documentation/devicetree/bindings/pinctrl/canaan,k210-fpioa.yaml
+ F:    drivers/pinctrl/pinctrl-k210.c
+ CANAAN/KENDRYTE K210 SOC RESET CONTROLLER DRIVER
+ M:    Damien Le Moal <damien.lemoal@wdc.com>
+ L:    linux-kernel@vger.kernel.org
+ L:    linux-riscv@lists.infradead.org
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/reset/canaan,k210-rst.yaml
+ F:    drivers/reset/reset-k210.c
+ CANAAN/KENDRYTE K210 SOC SYSTEM CONTROLLER DRIVER
+ M:    Damien Le Moal <damien.lemoal@wdc.com>
+ L:    linux-riscv@lists.infradead.org
+ S:    Maintained
+ F:      Documentation/devicetree/bindings/mfd/canaan,k210-sysctl.yaml
+ F:    drivers/soc/canaan/
+ F:    include/soc/canaan/
  CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
  M:    David Howells <dhowells@redhat.com>
  L:    linux-cachefs@redhat.com (moderated for non-subscribers)
@@@ -3876,24 -3904,15 +3899,24 @@@ F:   Documentation/devicetree/bindings/mt
  F:    drivers/mtd/nand/raw/cadence-nand-controller.c
  
  CADENCE USB3 DRD IP DRIVER
 -M:    Peter Chen <peter.chen@nxp.com>
 +M:    Peter Chen <peter.chen@kernel.org>
  M:    Pawel Laszczak <pawell@cadence.com>
 -M:    Roger Quadros <rogerq@ti.com>
 +R:    Roger Quadros <rogerq@kernel.org>
  R:    Aswath Govindraju <a-govindraju@ti.com>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
  F:    Documentation/devicetree/bindings/usb/cdns,usb3.yaml
  F:    drivers/usb/cdns3/
 +X:    drivers/usb/cdns3/cdnsp*
 +
 +CADENCE USBSSP DRD IP DRIVER
 +M:    Pawel Laszczak <pawell@cadence.com>
 +L:    linux-usb@vger.kernel.org
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
 +F:    drivers/usb/cdns3/
 +X:    drivers/usb/cdns3/cdns3*
  
  CADET FM/AM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
@@@ -3935,10 -3954,8 +3958,10 @@@ T:    git git://git.kernel.org/pub/scm/lin
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git
  F:    Documentation/devicetree/bindings/net/can/
  F:    drivers/net/can/
 +F:    include/linux/can/bittiming.h
  F:    include/linux/can/dev.h
  F:    include/linux/can/led.h
 +F:    include/linux/can/length.h
  F:    include/linux/can/platform/
  F:    include/linux/can/rx-offload.h
  F:    include/uapi/linux/can/error.h
@@@ -3954,7 -3971,6 +3977,7 @@@ W:      https://github.com/linux-ca
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git
  F:    Documentation/networking/can.rst
 +F:    include/linux/can/can-ml.h
  F:    include/linux/can/core.h
  F:    include/linux/can/skb.h
  F:    include/net/netns/can.h
@@@ -3968,7 -3984,7 +3991,7 @@@ F:      net/can
  CAN-J1939 NETWORK LAYER
  M:    Robin van der Gracht <robin@protonic.nl>
  M:    Oleksij Rempel <o.rempel@pengutronix.de>
 -R:    Pengutronix Kernel Team <kernel@pengutronix.de>
 +R:    kernel@pengutronix.de
  L:    linux-can@vger.kernel.org
  S:    Maintained
  F:    Documentation/networking/j1939.rst
@@@ -4090,6 -4106,7 +4113,6 @@@ W:      http://www.ibm.com/developerworks/po
  F:    arch/powerpc/include/asm/cell*.h
  F:    arch/powerpc/include/asm/spu*.h
  F:    arch/powerpc/include/uapi/asm/spu*.h
 -F:    arch/powerpc/oprofile/*cell*
  F:    arch/powerpc/platforms/cell/
  
  CELLWISE CW2015 BATTERY DRIVER
@@@ -4130,13 -4147,13 +4153,13 @@@ F:   scripts/extract-cert.
  F:    scripts/sign-file.c
  
  CFAG12864B LCD DRIVER
 -M:    Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
 +M:    Miguel Ojeda <ojeda@kernel.org>
  S:    Maintained
  F:    drivers/auxdisplay/cfag12864b.c
  F:    include/linux/cfag12864b.h
  
  CFAG12864BFB LCD FRAMEBUFFER DRIVER
 -M:    Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
 +M:    Miguel Ojeda <ojeda@kernel.org>
  S:    Maintained
  F:    drivers/auxdisplay/cfag12864bfb.c
  F:    include/linux/cfag12864b.h
@@@ -4169,7 -4186,7 +4192,7 @@@ S:      Maintaine
  F:    Documentation/translations/zh_CN/
  
  CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
 -M:    Peter Chen <Peter.Chen@nxp.com>
 +M:    Peter Chen <peter.chen@kernel.org>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
@@@ -4306,12 -4323,12 +4329,12 @@@ S:   Supporte
  F:    drivers/infiniband/hw/usnic/
  
  CLANG-FORMAT FILE
 -M:    Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
 +M:    Miguel Ojeda <ojeda@kernel.org>
  S:    Maintained
  F:    .clang-format
  
  CLANG/LLVM BUILD SUPPORT
 -M:    Nathan Chancellor <natechancellor@gmail.com>
 +M:    Nathan Chancellor <nathan@kernel.org>
  M:    Nick Desaulniers <ndesaulniers@google.com>
  L:    clang-built-linux@googlegroups.com
  S:    Supported
@@@ -4319,8 -4336,8 +4342,8 @@@ W:      https://clangbuiltlinux.github.io
  B:    https://github.com/ClangBuiltLinux/linux/issues
  C:    irc://chat.freenode.net/clangbuiltlinux
  F:    Documentation/kbuild/llvm.rst
 +F:    include/linux/compiler-clang.h
  F:    scripts/clang-tools/
 -F:    scripts/lld-version.sh
  K:    \b(?i:clang|llvm)\b
  
  CLEANCACHE API
@@@ -4446,21 -4463,10 +4469,21 @@@ S:   Maintaine
  F:    drivers/platform/x86/compal-laptop.c
  
  COMPILER ATTRIBUTES
 -M:    Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
 +M:    Miguel Ojeda <ojeda@kernel.org>
  S:    Maintained
  F:    include/linux/compiler_attributes.h
  
 +COMPUTE EXPRESS LINK (CXL)
 +M:    Alison Schofield <alison.schofield@intel.com>
 +M:    Vishal Verma <vishal.l.verma@intel.com>
 +M:    Ira Weiny <ira.weiny@intel.com>
 +M:    Ben Widawsky <ben.widawsky@intel.com>
 +M:    Dan Williams <dan.j.williams@intel.com>
 +L:    linux-cxl@vger.kernel.org
 +S:    Maintained
 +F:    drivers/cxl/
 +F:    include/uapi/linux/cxl_mem.h
 +
  CONEXANT ACCESSRUNNER USB DRIVER
  L:    accessrunner-general@lists.sourceforge.net
  S:    Orphan
@@@ -4484,7 -4490,7 +4507,7 @@@ F:      include/linux/console
  
  CONTROL GROUP (CGROUP)
  M:    Tejun Heo <tj@kernel.org>
 -M:    Li Zefan <lizefan@huawei.com>
 +M:    Zefan Li <lizefan.x@bytedance.com>
  M:    Johannes Weiner <hannes@cmpxchg.org>
  L:    cgroups@vger.kernel.org
  S:    Maintained
@@@ -4508,9 -4514,11 +4531,9 @@@ F:     block/blk-throttle.
  F:    include/linux/blk-cgroup.h
  
  CONTROL GROUP - CPUSET
 -M:    Li Zefan <lizefan@huawei.com>
 +M:    Zefan Li <lizefan.x@bytedance.com>
  L:    cgroups@vger.kernel.org
  S:    Maintained
 -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
  F:    Documentation/admin-guide/cgroup-v1/cpusets.rst
  F:    include/linux/cpuset.h
@@@ -4638,7 -4646,6 +4661,7 @@@ L:      linux-samsung-soc@vger.kernel.or
  S:    Supported
  F:    arch/arm/mach-exynos/pm.c
  F:    drivers/cpuidle/cpuidle-exynos.c
 +F:    include/linux/platform_data/cpuidle-exynos.h
  
  CPUIDLE DRIVER - ARM PSCI
  M:    Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
@@@ -4938,8 -4945,9 +4961,8 @@@ F:      Documentation/scsi/dc395x.rs
  F:    drivers/scsi/dc395x.*
  
  DCCP PROTOCOL
 -M:    Gerrit Renker <gerrit@erg.abdn.ac.uk>
  L:    dccp@vger.kernel.org
 -S:    Maintained
 +S:    Orphan
  W:    http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp
  F:    include/linux/dccp.h
  F:    include/linux/tfrc.h
@@@ -4954,7 -4962,7 +4977,7 @@@ F:      Documentation/networking/decnet.rs
  F:    net/decnet/
  
  DECSTATION PLATFORM SUPPORT
 -M:    "Maciej W. Rozycki" <macro@linux-mips.org>
 +M:    "Maciej W. Rozycki" <macro@orcam.me.uk>
  L:    linux-mips@vger.kernel.org
  S:    Maintained
  W:    http://www.linux-mips.org/wiki/DECstation
@@@ -4963,12 -4971,12 +4986,12 @@@ F:   arch/mips/include/asm/dec
  F:    arch/mips/include/asm/mach-dec/
  
  DEFXX FDDI NETWORK DRIVER
 -M:    "Maciej W. Rozycki" <macro@linux-mips.org>
 +M:    "Maciej W. Rozycki" <macro@orcam.me.uk>
  S:    Maintained
  F:    drivers/net/fddi/defxx.*
  
  DEFZA FDDI NETWORK DRIVER
 -M:    "Maciej W. Rozycki" <macro@linux-mips.org>
 +M:    "Maciej W. Rozycki" <macro@orcam.me.uk>
  S:    Maintained
  F:    drivers/net/fddi/defza.*
  
@@@ -4985,17 -4993,17 +5008,17 @@@ M:   Matthew Garrett <mjg59@srcf.ucam.org
  M:    Pali Rohár <pali@kernel.org>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/dell-laptop.c
 +F:    drivers/platform/x86/dell/dell-laptop.c
  
  DELL LAPTOP FREEFALL DRIVER
  M:    Pali Rohár <pali@kernel.org>
  S:    Maintained
 -F:    drivers/platform/x86/dell-smo8800.c
 +F:    drivers/platform/x86/dell/dell-smo8800.c
  
  DELL LAPTOP RBTN DRIVER
  M:    Pali Rohár <pali@kernel.org>
  S:    Maintained
 -F:    drivers/platform/x86/dell-rbtn.*
 +F:    drivers/platform/x86/dell/dell-rbtn.*
  
  DELL LAPTOP SMM DRIVER
  M:    Pali Rohár <pali@kernel.org>
@@@ -5007,26 -5015,26 +5030,26 @@@ DELL REMOTE BIOS UPDATE DRIVE
  M:    Stuart Hayes <stuart.w.hayes@gmail.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/dell_rbu.c
 +F:    drivers/platform/x86/dell/dell_rbu.c
  
  DELL SMBIOS DRIVER
  M:    Pali Rohár <pali@kernel.org>
  M:    Mario Limonciello <mario.limonciello@dell.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/dell-smbios.*
 +F:    drivers/platform/x86/dell/dell-smbios.*
  
  DELL SMBIOS SMM DRIVER
  M:    Mario Limonciello <mario.limonciello@dell.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/dell-smbios-smm.c
 +F:    drivers/platform/x86/dell/dell-smbios-smm.c
  
  DELL SMBIOS WMI DRIVER
  M:    Mario Limonciello <mario.limonciello@dell.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
 -F:    drivers/platform/x86/dell-smbios-wmi.c
 +F:    drivers/platform/x86/dell/dell-smbios-wmi.c
  F:    tools/wmi/dell-smbios-example.c
  
  DELL SYSTEMS MANAGEMENT BASE DRIVER (dcdbas)
@@@ -5034,12 -5042,12 +5057,12 @@@ M:   Stuart Hayes <stuart.w.hayes@gmail.c
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    Documentation/driver-api/dcdbas.rst
 -F:    drivers/platform/x86/dcdbas.*
 +F:    drivers/platform/x86/dell/dcdbas.*
  
  DELL WMI DESCRIPTOR DRIVER
  M:    Mario Limonciello <mario.limonciello@dell.com>
  S:    Maintained
 -F:    drivers/platform/x86/dell-wmi-descriptor.c
 +F:    drivers/platform/x86/dell/dell-wmi-descriptor.c
  
  DELL WMI SYSMAN DRIVER
  M:    Divya Bharathi <divya.bharathi@dell.com>
@@@ -5048,13 -5056,13 +5071,13 @@@ M:   Prasanth Ksr <prasanth.ksr@dell.com
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-class-firmware-attributes
 -F:    drivers/platform/x86/dell-wmi-sysman/
 +F:    drivers/platform/x86/dell/dell-wmi-sysman/
  
  DELL WMI NOTIFICATIONS DRIVER
  M:    Matthew Garrett <mjg59@srcf.ucam.org>
  M:    Pali Rohár <pali@kernel.org>
  S:    Maintained
 -F:    drivers/platform/x86/dell-wmi.c
 +F:    drivers/platform/x86/dell/dell-wmi.c
  
  DELTA ST MEDIA DRIVER
  M:    Hugues Fruchet <hugues.fruchet@st.com>
@@@ -5296,7 -5304,6 +5319,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    Documentation/devicetree/bindings/dma/
  F:    Documentation/driver-api/dmaengine/
  F:    drivers/dma/
 +F:    include/linux/dma/
  F:    include/linux/dmaengine.h
  F:    include/linux/of_dma.h
  
@@@ -5800,7 -5807,6 +5823,7 @@@ F:      drivers/gpu/drm/vboxvideo
  DRM DRIVER FOR VMWARE VIRTUAL GPU
  M:    "VMware Graphics" <linux-graphics-maintainer@vmware.com>
  M:    Roland Scheidegger <sroland@vmware.com>
 +M:    Zack Rusin <zackr@vmware.com>
  L:    dri-devel@lists.freedesktop.org
  S:    Supported
  T:    git git://people.freedesktop.org/~sroland/linux
@@@ -6002,8 -6008,8 +6025,8 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/stm
  
  DRM DRIVERS FOR TI KEYSTONE
 -M:    Jyri Sarha <jsarha@ti.com>
 -M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
 +M:    Jyri Sarha <jyri.sarha@iki.fi>
 +M:    Tomi Valkeinen <tomba@kernel.org>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -6013,15 -6019,15 +6036,15 @@@ F:   Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/tidss/
  
  DRM DRIVERS FOR TI LCDC
 -M:    Jyri Sarha <jsarha@ti.com>
 -R:    Tomi Valkeinen <tomi.valkeinen@ti.com>
 +M:    Jyri Sarha <jyri.sarha@iki.fi>
 +R:    Tomi Valkeinen <tomba@kernel.org>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/display/tilcdc/
  F:    drivers/gpu/drm/tilcdc/
  
  DRM DRIVERS FOR TI OMAP
 -M:    Tomi Valkeinen <tomi.valkeinen@ti.com>
 +M:    Tomi Valkeinen <tomba@kernel.org>
  L:    dri-devel@lists.freedesktop.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/display/ti/
@@@ -6074,6 -6080,14 +6097,6 @@@ T:     git git://anongit.freedesktop.org/dr
  F:    Documentation/devicetree/bindings/display/xlnx/
  F:    drivers/gpu/drm/xlnx/
  
 -DRM DRIVERS FOR ZTE ZX
 -M:    Shawn Guo <shawnguo@kernel.org>
 -L:    dri-devel@lists.freedesktop.org
 -S:    Maintained
 -T:    git git://anongit.freedesktop.org/drm/drm-misc
 -F:    Documentation/devicetree/bindings/display/zte,vou.txt
 -F:    drivers/gpu/drm/zte/
 -
  DRM PANEL DRIVERS
  M:    Thierry Reding <thierry.reding@gmail.com>
  R:    Sam Ravnborg <sam@ravnborg.org>
@@@ -6233,7 -6247,7 +6256,7 @@@ F:      include/linux/dim.
  F:    lib/dim/
  
  DZ DECSTATION DZ11 SERIAL DRIVER
 -M:    "Maciej W. Rozycki" <macro@linux-mips.org>
 +M:    "Maciej W. Rozycki" <macro@orcam.me.uk>
  S:    Maintained
  F:    drivers/tty/serial/dz.*
  
@@@ -6483,9 -6497,9 +6506,9 @@@ S:      Maintaine
  F:    drivers/edac/skx_*.[ch]
  
  EDAC-TI
 -M:    Tero Kristo <t-kristo@ti.com>
 +M:    Tero Kristo <kristo@kernel.org>
  L:    linux-edac@vger.kernel.org
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/edac/ti_edac.c
  
  EDIROL UA-101/UA-1000 DRIVER
@@@ -6872,9 -6886,6 +6895,9 @@@ F:      include/linux/fs.
  F:    include/linux/fs_types.h
  F:    include/uapi/linux/fs.h
  F:    include/uapi/linux/openat2.h
 +X:    fs/io-wq.c
 +X:    fs/io-wq.h
 +X:    fs/io_uring.c
  
  FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
  M:    Riku Voipio <riku.voipio@iki.fi>
@@@ -6966,10 -6977,9 +6989,10 @@@ M:    Wu Hao <hao.wu@intel.com
  R:    Tom Rix <trix@redhat.com>
  L:    linux-fpga@vger.kernel.org
  S:    Maintained
 -F:    Documentation/ABI/testing/sysfs-bus-dfl
 +F:    Documentation/ABI/testing/sysfs-bus-dfl*
  F:    Documentation/fpga/dfl.rst
  F:    drivers/fpga/dfl*
 +F:    include/linux/dfl.h
  F:    include/uapi/linux/fpga-dfl.h
  
  FPGA MANAGER FRAMEWORK
@@@ -7376,6 -7386,7 +7399,6 @@@ L:      linux-hardening@vger.kernel.or
  S:    Maintained
  F:    Documentation/kbuild/gcc-plugins.rst
  F:    scripts/Makefile.gcc-plugins
 -F:    scripts/gcc-plugin.sh
  F:    scripts/gcc-plugins/
  
  GCOV BASED KERNEL PROFILING
@@@ -7390,6 -7401,13 +7413,6 @@@ M:     Kieran Bingham <kbingham@kernel.org
  S:    Supported
  F:    scripts/gdb/
  
 -GDT SCSI DISK ARRAY CONTROLLER DRIVER
 -M:    Achim Leubner <achim_leubner@adaptec.com>
 -L:    linux-scsi@vger.kernel.org
 -S:    Supported
 -W:    http://www.icp-vortex.com/
 -F:    drivers/scsi/gdt*
 -
  GEMTEK FM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -7935,12 -7953,6 +7958,12 @@@ F:    drivers/hid
  F:    include/linux/hid*
  F:    include/uapi/linux/hid*
  
 +HID PLAYSTATION DRIVER
 +M:    Roderick Colenbrander <roderick.colenbrander@sony.com>
 +L:    linux-input@vger.kernel.org
 +S:    Supported
 +F:    drivers/hid/hid-playstation.c
 +
  HID SENSOR HUB DRIVERS
  M:    Jiri Kosina <jikos@kernel.org>
  M:    Jonathan Cameron <jic23@kernel.org>
@@@ -8172,7 -8184,7 +8195,7 @@@ F:      net/hsr
  HT16K33 LED CONTROLLER DRIVER
  M:    Robin van der Gracht <robin@protonic.nl>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/display/ht16k33.txt
 +F:    Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml
  F:    drivers/auxdisplay/ht16k33.c
  
  HTCPEN TOUCHSCREEN DRIVER
@@@ -8446,8 -8458,11 +8469,8 @@@ F:     drivers/i3c
  F:    include/linux/i3c/
  
  IA64 (Itanium) PLATFORM
 -M:    Tony Luck <tony.luck@intel.com>
 -M:    Fenghua Yu <fenghua.yu@intel.com>
  L:    linux-ia64@vger.kernel.org
 -S:    Odd Fixes
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
 +S:    Orphan
  F:    Documentation/ia64/
  F:    arch/ia64/
  
@@@ -8890,6 -8905,7 +8913,6 @@@ F:      drivers/mfd/intel_pmc_bxt.
  F:    include/linux/mfd/intel_pmc_bxt.h
  
  INTEL C600 SERIES SAS CONTROLLER DRIVER
 -M:    Intel SCU Linux support <intel-linux-scu@intel.com>
  M:    Artur Paszkiewicz <artur.paszkiewicz@intel.com>
  L:    linux-scsi@vger.kernel.org
  S:    Supported
@@@ -8947,6 -8963,7 +8970,6 @@@ L:      linux-gpio@vger.kernel.or
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel.git
  F:    drivers/gpio/gpio-ich.c
 -F:    drivers/gpio/gpio-intel-mid.c
  F:    drivers/gpio/gpio-merrifield.c
  F:    drivers/gpio/gpio-ml-ioh.c
  F:    drivers/gpio/gpio-pch.c
@@@ -9019,11 -9036,9 +9042,11 @@@ INTEL IPU3 CSI-2 CIO2 DRIVE
  M:    Yong Zhi <yong.zhi@intel.com>
  M:    Sakari Ailus <sakari.ailus@linux.intel.com>
  M:    Bingbu Cao <bingbu.cao@intel.com>
 +M:    Dan Scally <djrscally@gmail.com>
  R:    Tianshu Qiu <tian.shu.qiu@intel.com>
  L:    linux-media@vger.kernel.org
  S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/userspace-api/media/v4l/pixfmt-srggb10-ipu3.rst
  F:    drivers/media/pci/intel/ipu3/
  
@@@ -9070,17 -9085,6 +9093,17 @@@ F:    drivers/crypto/keembay/keembay-ocs-a
  F:    drivers/crypto/keembay/ocs-aes.c
  F:    drivers/crypto/keembay/ocs-aes.h
  
 +INTEL KEEM BAY OCS HCU CRYPTO DRIVER
 +M:    Daniele Alessandrelli <daniele.alessandrelli@intel.com>
 +M:    Declan Murphy <declan.murphy@intel.com>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/crypto/intel,keembay-ocs-hcu.yaml
 +F:    drivers/crypto/keembay/Kconfig
 +F:    drivers/crypto/keembay/Makefile
 +F:    drivers/crypto/keembay/keembay-ocs-hcu-core.c
 +F:    drivers/crypto/keembay/ocs-hcu.c
 +F:    drivers/crypto/keembay/ocs-hcu.h
 +
  INTEL MANAGEMENT ENGINE (mei)
  M:    Tomas Winkler <tomas.winkler@intel.com>
  L:    linux-kernel@vger.kernel.org
@@@ -9118,11 -9122,14 +9141,11 @@@ M:   Andy Shevchenko <andy@kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel.git
  F:    drivers/gpio/gpio-*cove.c
 -F:    drivers/gpio/gpio-msic.c
  
  INTEL PMIC MULTIFUNCTION DEVICE DRIVERS
  M:    Andy Shevchenko <andy@kernel.org>
  S:    Maintained
 -F:    drivers/mfd/intel_msic.c
  F:    drivers/mfd/intel_soc_pmic*
 -F:    include/linux/mfd/intel_msic.h
  F:    include/linux/mfd/intel_soc_pmic*
  
  INTEL PMT DRIVER
@@@ -9244,11 -9251,10 +9267,11 @@@ F:   include/linux/tboot.
  
  INTEL SGX
  M:    Jarkko Sakkinen <jarkko@kernel.org>
 +R:    Dave Hansen <dave.hansen@linux.intel.com>
  L:    linux-sgx@vger.kernel.org
  S:    Supported
  Q:    https://patchwork.kernel.org/project/intel-sgx/list/
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-sgx.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/sgx
  F:    Documentation/x86/sgx.rst
  F:    arch/x86/entry/vdso/vsgx.S
  F:    arch/x86/include/uapi/asm/sgx.h
@@@ -9257,7 -9263,7 +9280,7 @@@ F:      tools/testing/selftests/sgx/
  K:    \bSGX_
  
  INTERCONNECT API
 -M:    Georgi Djakov <georgi.djakov@linaro.org>
 +M:    Georgi Djakov <djakov@kernel.org>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/interconnect/
@@@ -9290,7 -9296,7 +9313,7 @@@ F:      drivers/net/ethernet/sgi/ioc3-eth.
  
  IOMAP FILESYSTEM LIBRARY
  M:    Christoph Hellwig <hch@infradead.org>
 -M:    Darrick J. Wong <darrick.wong@oracle.com>
 +M:    Darrick J. Wong <djwong@kernel.org>
  M:    linux-xfs@vger.kernel.org
  M:    linux-fsdevel@vger.kernel.org
  L:    linux-xfs@vger.kernel.org
@@@ -9316,7 -9322,6 +9339,7 @@@ F:      include/uapi/linux/iommu.
  
  IO_URING
  M:    Jens Axboe <axboe@kernel.dk>
 +R:    Pavel Begunkov <asml.silence@gmail.com>
  L:    io-uring@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.dk/linux-block
@@@ -9324,7 -9329,6 +9347,7 @@@ T:      git git://git.kernel.dk/liburin
  F:    fs/io-wq.c
  F:    fs/io-wq.h
  F:    fs/io_uring.c
 +F:    include/linux/io_uring.h
  F:    include/uapi/linux/io_uring.h
  
  IPMI SUBSYSTEM
@@@ -9346,6 -9350,7 +9369,6 @@@ W:      http://www.adaptec.com
  F:    drivers/scsi/ips*
  
  IPVS
 -M:    Wensong Zhang <wensong@linux-vs.org>
  M:    Simon Horman <horms@verge.net.au>
  M:    Julian Anastasov <ja@ssi.bg>
  L:    netdev@vger.kernel.org
@@@ -9582,18 -9587,16 +9605,18 @@@ F:   Documentation/hwmon/k8temp.rs
  F:    drivers/hwmon/k8temp.c
  
  KASAN
 -M:    Andrey Ryabinin <aryabinin@virtuozzo.com>
 +M:    Andrey Ryabinin <ryabinin.a.a@gmail.com>
  R:    Alexander Potapenko <glider@google.com>
 +R:    Andrey Konovalov <andreyknvl@gmail.com>
  R:    Dmitry Vyukov <dvyukov@google.com>
  L:    kasan-dev@googlegroups.com
  S:    Maintained
  F:    Documentation/dev-tools/kasan.rst
 -F:    arch/*/include/asm/kasan.h
 +F:    arch/*/include/asm/*kasan.h
  F:    arch/*/mm/kasan_init*
  F:    include/linux/kasan*.h
 -F:    lib/test_kasan.c
 +F:    lib/Kconfig.kasan
 +F:    lib/test_kasan*.c
  F:    mm/kasan/
  F:    scripts/Makefile.kasan
  
@@@ -9608,7 -9611,7 +9631,7 @@@ F:      scripts/kconfig
  
  KCOV
  R:    Dmitry Vyukov <dvyukov@google.com>
 -R:    Andrey Konovalov <andreyknvl@google.com>
 +R:    Andrey Konovalov <andreyknvl@gmail.com>
  L:    kasan-dev@googlegroups.com
  S:    Maintained
  F:    Documentation/dev-tools/kcov.rst
@@@ -9759,7 -9762,6 +9782,7 @@@ M:      Aleksandar Markovic <aleksandar.qemu
  L:    linux-mips@vger.kernel.org
  L:    kvm@vger.kernel.org
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
  F:    arch/mips/include/asm/kvm*
  F:    arch/mips/include/uapi/asm/kvm*
  F:    arch/mips/kvm/
@@@ -9797,7 -9799,7 +9820,7 @@@ F:      tools/testing/selftests/kvm/s390x
  
  KERNEL VIRTUAL MACHINE FOR X86 (KVM/x86)
  M:    Paolo Bonzini <pbonzini@redhat.com>
 -R:    Sean Christopherson <sean.j.christopherson@intel.com>
 +R:    Sean Christopherson <seanjc@google.com>
  R:    Vitaly Kuznetsov <vkuznets@redhat.com>
  R:    Wanpeng Li <wanpengli@tencent.com>
  R:    Jim Mattson <jmattson@google.com>
@@@ -9869,18 -9871,6 +9892,18 @@@ F:    include/linux/keyctl.
  F:    include/uapi/linux/keyctl.h
  F:    security/keys/
  
 +KFENCE
 +M:    Alexander Potapenko <glider@google.com>
 +M:    Marco Elver <elver@google.com>
 +R:    Dmitry Vyukov <dvyukov@google.com>
 +L:    kasan-dev@googlegroups.com
 +S:    Maintained
 +F:    Documentation/dev-tools/kfence.rst
 +F:    arch/*/include/asm/kfence.h
 +F:    include/linux/kfence.h
 +F:    lib/Kconfig.kfence
 +F:    mm/kfence/
 +
  KFIFO
  M:    Stefani Seibold <stefani@seibold.net>
  S:    Maintained
@@@ -9941,7 -9931,7 +9964,7 @@@ F:      include/linux/kprobes.
  F:    kernel/kprobes.c
  
  KS0108 LCD CONTROLLER DRIVER
 -M:    Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
 +M:    Miguel Ojeda <ojeda@kernel.org>
  S:    Maintained
  F:    Documentation/admin-guide/auxdisplay/ks0108.rst
  F:    drivers/auxdisplay/ks0108.c
@@@ -10293,6 -10283,7 +10316,6 @@@ S:   Supporte
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
  F:    Documentation/atomic_bitops.txt
  F:    Documentation/atomic_t.txt
 -F:    Documentation/core-api/atomic_ops.rst
  F:    Documentation/core-api/refcount-vs-atomic.rst
  F:    Documentation/litmus-tests/
  F:    Documentation/memory-barriers.txt
@@@ -10405,8 -10396,6 +10428,8 @@@ LOCKING PRIMITIVE
  M:    Peter Zijlstra <peterz@infradead.org>
  M:    Ingo Molnar <mingo@redhat.com>
  M:    Will Deacon <will@kernel.org>
 +R:    Waiman Long <longman@redhat.com>
 +R:    Boqun Feng <boqun.feng@gmail.com> (LOCKDEP)
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
@@@ -10727,8 -10716,6 +10750,8 @@@ M:   Sunil Goutham <sgoutham@marvell.com
  M:    Linu Cherian <lcherian@marvell.com>
  M:    Geetha sowjanya <gakula@marvell.com>
  M:    Jerin Jacob <jerinj@marvell.com>
 +M:    hariprasad <hkelam@marvell.com>
 +M:    Subbaraya Sundeep <sbhatta@marvell.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    Documentation/networking/device_drivers/ethernet/marvell/octeontx2.rst
@@@ -10883,7 -10870,7 +10906,7 @@@ F:   drivers/media/radio/radio-maxiradio
  
  MCAN MMIO DEVICE DRIVER
  M:    Dan Murphy <dmurphy@ti.com>
 -M:    Sriram Dash <sriram.dash@samsung.com>
 +M:    Pankaj Sharma <pankj.sharma@samsung.com>
  L:    linux-can@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/can/bosch,m_can.yaml
@@@ -11218,15 -11205,6 +11241,15 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/i2c/i2c-mt65xx.txt
  F:    drivers/i2c/busses/i2c-mt65xx.c
  
 +MEDIATEK IOMMU DRIVER
 +M:    Yong Wu <yong.wu@mediatek.com>
 +L:    iommu@lists.linux-foundation.org
 +L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
 +S:    Supported
 +F:    Documentation/devicetree/bindings/iommu/mediatek*
 +F:    drivers/iommu/mtk_iommu*
 +F:    include/dt-bindings/memory/mt*-port.h
 +
  MEDIATEK JPEG DRIVER
  M:    Rick Chang <rick.chang@mediatek.com>
  M:    Bin Liu <bin.liu@mediatek.com>
@@@ -11316,8 -11294,6 +11339,8 @@@ L:   linux-usb@vger.kernel.or
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    linux-mediatek@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 +F:    Documentation/devicetree/bindings/usb/mediatek,*
 +F:    drivers/usb/host/xhci-mtk*
  F:    drivers/usb/mtu3/
  
  MEGACHIPS STDPXXXX-GE-B850V3-FW LVDS/DP++ BRIDGES
@@@ -11599,7 -11575,7 +11622,7 @@@ L:   linux-amlogic@lists.infradead.or
  S:    Supported
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/amlogic,axg-ge2d.yaml
 -F:    drivers/media/meson/ge2d/
 +F:    drivers/media/platform/meson/ge2d/
  
  MESON NAND CONTROLLER DRIVER FOR AMLOGIC SOCS
  M:    Liang Yang <liang.yang@amlogic.com>
@@@ -11651,6 -11627,7 +11674,6 @@@ F:   drivers/dma/at_hdmac.
  F:    drivers/dma/at_hdmac_regs.h
  F:    drivers/dma/at_xdmac.c
  F:    include/dt-bindings/dma/at91.h
 -F:    include/linux/platform_data/dma-atmel.h
  
  MICROCHIP AT91 SERIAL DRIVER
  M:    Richard Genoud <richard.genoud@gmail.com>
@@@ -11713,7 -11690,7 +11736,7 @@@ F:   drivers/media/platform/atmel/atmel-i
  
  MICROCHIP KSZ SERIES ETHERNET SWITCH DRIVER
  M:    Woojung Huh <woojung.huh@microchip.com>
 -M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
 +M:    UNGLinuxDriver@microchip.com
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
@@@ -11723,7 -11700,7 +11746,7 @@@ F:   net/dsa/tag_ksz.
  
  MICROCHIP LAN743X ETHERNET DRIVER
  M:    Bryan Whitehead <bryan.whitehead@microchip.com>
 -M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
 +M:    UNGLinuxDriver@microchip.com
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/ethernet/microchip/lan743x_*
@@@ -11736,9 -11713,9 +11759,9 @@@ F:   drivers/video/fbdev/atmel_lcdfb.
  F:    include/video/atmel_lcdc.h
  
  MICROCHIP MCP16502 PMIC DRIVER
 -M:    Andrei Stefanescu <andrei.stefanescu@microchip.com>
 +M:    Claudiu Beznea <claudiu.beznea@microchip.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 +S:    Supported
  F:    Documentation/devicetree/bindings/regulator/mcp16502-regulator.txt
  F:    drivers/regulator/mcp16502.c
  
@@@ -11817,7 -11794,7 +11840,7 @@@ F:   drivers/net/wireless/microchip/wilc1
  
  MICROSEMI MIPS SOCS
  M:    Alexandre Belloni <alexandre.belloni@bootlin.com>
 -M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
 +M:    UNGLinuxDriver@microchip.com
  L:    linux-mips@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/mips/mscc.txt
@@@ -11853,31 -11830,12 +11876,31 @@@ S:        Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
  F:    drivers/platform/surface/
  
 +MICROSOFT SURFACE HOT-PLUG DRIVER
 +M:    Maximilian Luz <luzmaximilian@gmail.com>
 +L:    platform-driver-x86@vger.kernel.org
 +S:    Maintained
 +F:    drivers/platform/surface/surface_hotplug.c
 +
  MICROSOFT SURFACE PRO 3 BUTTON DRIVER
  M:    Chen Yu <yu.c.chen@intel.com>
  L:    platform-driver-x86@vger.kernel.org
  S:    Supported
  F:    drivers/platform/surface/surfacepro3_button.c
  
 +MICROSOFT SURFACE SYSTEM AGGREGATOR SUBSYSTEM
 +M:    Maximilian Luz <luzmaximilian@gmail.com>
 +S:    Maintained
 +W:    https://github.com/linux-surface/surface-aggregator-module
 +C:    irc://chat.freenode.net/##linux-surface
 +F:    Documentation/driver-api/surface_aggregator/
 +F:    drivers/platform/surface/aggregator/
 +F:    drivers/platform/surface/surface_acpi_notify.c
 +F:    drivers/platform/surface/surface_aggregator_cdev.c
 +F:    include/linux/surface_acpi_notify.h
 +F:    include/linux/surface_aggregator/
 +F:    include/uapi/linux/surface_aggregator/
 +
  MICROTEK X6 SCANNER
  M:    Oliver Neukum <oliver@neukum.org>
  S:    Maintained
@@@ -11900,11 -11858,9 +11923,11 @@@ L: linux-media@vger.kernel.or
  S:    Maintained
  F:    Documentation/devicetree/bindings/media/i2c/mipi-ccs.yaml
  F:    Documentation/driver-api/media/drivers/ccs/
 +F:    Documentation/userspace-api/media/drivers/ccs.rst
  F:    drivers/media/i2c/ccs-pll.c
  F:    drivers/media/i2c/ccs-pll.h
  F:    drivers/media/i2c/ccs/
 +F:    include/uapi/linux/ccs.h
  F:    include/uapi/linux/smiapp.h
  
  MIPS
@@@ -11970,7 -11926,8 +11993,7 @@@ L:   linux-mips@vger.kernel.or
  S:    Maintained
  F:    arch/mips/include/asm/mach-loongson2ef/
  F:    arch/mips/loongson2ef/
 -F:    drivers/*/*/*loongson2*
 -F:    drivers/*/*loongson2*
 +F:    drivers/cpufreq/loongson2_cpufreq.c
  
  MIPS/LOONGSON64 ARCHITECTURE
  M:    Huacai Chen <chenhuacai@kernel.org>
@@@ -11979,6 -11936,8 +12002,6 @@@ L:   linux-mips@vger.kernel.or
  S:    Maintained
  F:    arch/mips/include/asm/mach-loongson64/
  F:    arch/mips/loongson64/
 -F:    drivers/*/*/*loongson3*
 -F:    drivers/*/*loongson3*
  F:    drivers/irqchip/irq-loongson*
  F:    drivers/platform/mips/cpu_hwmon.c
  
@@@ -12482,8 -12441,8 +12505,8 @@@ F:   tools/testing/selftests/net/ipsec.
  
  NETWORKING [IPv4/IPv6]
  M:    "David S. Miller" <davem@davemloft.net>
 -M:    Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
  M:    Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
 +M:    David Ahern <dsahern@kernel.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
@@@ -12539,6 -12498,7 +12562,6 @@@ F:   net/ipv6/tcp*.
  
  NETWORKING [TLS]
  M:    Boris Pismenny <borisp@nvidia.com>
 -M:    Aviad Yehezkel <aviadye@nvidia.com>
  M:    John Fastabend <john.fastabend@gmail.com>
  M:    Daniel Borkmann <daniel@iogearbox.net>
  M:    Jakub Kicinski <kuba@kernel.org>
@@@ -12587,14 -12547,6 +12610,14 @@@ F: include/net/nfc
  F:    include/uapi/linux/nfc.h
  F:    net/nfc/
  
 +NFC VIRTUAL NCI DEVICE DRIVER
 +M:    Bongsu Jeon <bongsu.jeon@samsung.com>
 +L:    netdev@vger.kernel.org
 +L:    linux-nfc@lists.01.org (moderated for non-subscribers)
 +S:    Supported
 +F:    drivers/nfc/virtual_ncidev.c
 +F:    tools/testing/selftests/nci/
 +
  NFS, SUNRPC, AND LOCKD CLIENTS
  M:    Trond Myklebust <trond.myklebust@hammerspace.com>
  M:    Anna Schumaker <anna.schumaker@netapp.com>
@@@ -12822,13 -12774,6 +12845,13 @@@ F: drivers/iio/gyro/fxas21002c_core.
  F:    drivers/iio/gyro/fxas21002c_i2c.c
  F:    drivers/iio/gyro/fxas21002c_spi.c
  
 +NXP i.MX CLOCK DRIVERS
 +M:    Abel Vesa <abel.vesa@nxp.com>
 +L:    linux-clk@vger.kernel.org
 +L:    linux-imx@nxp.com
 +S:    Maintained
 +F:    drivers/clk/imx/
 +
  NXP i.MX 8MQ DCSS DRIVER
  M:    Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
  R:    Lucas Stach <l.stach@pengutronix.de>
@@@ -12903,17 -12848,16 +12926,17 @@@ F:        tools/objtool
  F:    include/linux/objtool.h
  
  OCELOT ETHERNET SWITCH DRIVER
 -M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
  M:    Vladimir Oltean <vladimir.oltean@nxp.com>
  M:    Claudiu Manoil <claudiu.manoil@nxp.com>
  M:    Alexandre Belloni <alexandre.belloni@bootlin.com>
 +M:    UNGLinuxDriver@microchip.com
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/dsa/ocelot/*
  F:    drivers/net/ethernet/mscc/
  F:    include/soc/mscc/ocelot*
  F:    net/dsa/tag_ocelot.c
 +F:    net/dsa/tag_ocelot_8021q.c
  F:    tools/testing/selftests/drivers/net/ocelot/*
  
  OCXL (Open Coherent Accelerator Processor Interface OpenCAPI) DRIVER
@@@ -12929,7 -12873,7 +12952,7 @@@ F:   include/misc/ocxl
  F:    include/uapi/misc/ocxl.h
  
  OMAP AUDIO SUPPORT
 -M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
 +M:    Peter Ujfalusi <peter.ujfalusi@gmail.com>
  M:    Jarkko Nikula <jarkko.nikula@bitmer.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  L:    linux-omap@vger.kernel.org
@@@ -12973,7 -12917,7 +12996,7 @@@ S:   Orpha
  F:    drivers/video/fbdev/omap/
  
  OMAP GENERAL PURPOSE MEMORY CONTROLLER SUPPORT
 -M:    Roger Quadros <rogerq@ti.com>
 +M:    Roger Quadros <rogerq@kernel.org>
  M:    Tony Lindgren <tony@atomide.com>
  L:    linux-omap@vger.kernel.org
  S:    Maintained
@@@ -13193,7 -13137,7 +13216,7 @@@ M:   Jacopo Mondi <jacopo@jmondi.org
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/ov5647.yaml
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov5647.yaml
  F:    drivers/media/i2c/ov5647.c
  
  OMNIVISION OV5670 SENSOR DRIVER
@@@ -13392,6 -13336,15 +13415,6 @@@ S:  Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
  F:    sound/drivers/opl4/
  
 -OPROFILE
 -M:    Robert Richter <rric@kernel.org>
 -L:    oprofile-list@lists.sf.net
 -S:    Maintained
 -F:    arch/*/include/asm/oprofile*.h
 -F:    arch/*/oprofile/
 -F:    drivers/oprofile/
 -F:    include/linux/oprofile.h
 -
  ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
  M:    Mark Fasheh <mark@fasheh.com>
  M:    Joel Becker <jlbec@evilplan.org>
@@@ -13902,13 -13855,6 +13925,13 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/pci/mediatek*
  F:    drivers/pci/controller/*mediatek*
  
 +PCIE DRIVER FOR MICROCHIP
 +M:    Daire McNamara <daire.mcnamara@microchip.com>
 +L:    linux-pci@vger.kernel.org
 +S:    Supported
 +F:    Documentation/devicetree/bindings/pci/microchip*
 +F:    drivers/pci/controller/*microchip*
 +
  PCIE DRIVER FOR QUALCOMM MSM
  M:    Stanimir Varbanov <svarbanov@mm-sol.com>
  L:    linux-pci@vger.kernel.org
@@@ -13967,7 -13913,7 +13990,7 @@@ F:   drivers/platform/x86/peaq-wmi.
  
  PENSANDO ETHERNET DRIVERS
  M:    Shannon Nelson <snelson@pensando.io>
 -M:    Pensando Drivers <drivers@pensando.io>
 +M:    drivers@pensando.io
  L:    netdev@vger.kernel.org
  S:    Supported
  F:    Documentation/networking/device_drivers/ethernet/pensando/ionic.rst
@@@ -14061,6 -14007,15 +14084,6 @@@ L:  linux-input@vger.kernel.or
  S:    Maintained
  F:    drivers/hid/hid-picolcd*
  
 -PICOXCELL SUPPORT
 -M:    Jamie Iles <jamie@jamieiles.com>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Supported
 -T:    git git://github.com/jamieiles/linux-2.6-ji.git
 -F:    arch/arm/boot/dts/picoxcell*
 -F:    arch/arm/mach-picoxcell/
 -F:    drivers/crypto/picoxcell*
 -
  PIDFD API
  M:    Christian Brauner <christian@brauner.io>
  L:    linux-kernel@vger.kernel.org
@@@ -14167,6 -14122,7 +14190,6 @@@ L:   linux-mips@vger.kernel.or
  S:    Odd Fixes
  F:    arch/mips/boot/dts/img/pistachio*
  F:    arch/mips/configs/pistachio*_defconfig
 -F:    arch/mips/include/asm/mach-pistachio/
  F:    arch/mips/pistachio/
  
  PKTCDVD DRIVER
@@@ -14579,18 -14535,10 +14602,18 @@@ S:        Supporte
  F:    drivers/crypto/qat/
  
  QCOM AUDIO (ASoC) DRIVERS
 -M:    Patrick Lai <plai@codeaurora.org>
 +M:    Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
  M:    Banajit Goswami <bgoswami@codeaurora.org>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
 +F:    sound/soc/codecs/lpass-va-macro.c
 +F:    sound/soc/codecs/lpass-wsa-macro.*
 +F:    sound/soc/codecs/msm8916-wcd-analog.c
 +F:    sound/soc/codecs/msm8916-wcd-digital.c
 +F:    sound/soc/codecs/wcd9335.*
 +F:    sound/soc/codecs/wcd934x.c
 +F:    sound/soc/codecs/wcd-clsh-v2.*
 +F:    sound/soc/codecs/wsa881x.c
  F:    sound/soc/qcom/
  
  QCOM IPA DRIVER
@@@ -14689,12 -14637,6 +14712,12 @@@ L: netdev@vger.kernel.or
  S:    Supported
  F:    drivers/staging/qlge/
  
 +QLOGIC QLGE 10Gb ETHERNET DRIVER
 +M:    Coiby Xu <coiby.xu@gmail.com>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/networking/device_drivers/qlogic/qlge.rst
 +
  QM1D1B0004 MEDIA DRIVER
  M:    Akihiro Tsukada <tskd08@gmail.com>
  L:    linux-media@vger.kernel.org
@@@ -14720,11 -14662,9 +14743,11 @@@ M: Stuart Yoder <stuyoder@gmail.com
  M:    Laurentiu Tudor <laurentiu.tudor@nxp.com>
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
 +F:    Documentation/ABI/stable/sysfs-bus-fsl-mc
  F:    Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
  F:    Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst
  F:    drivers/bus/fsl-mc/
 +F:    include/uapi/linux/fsl_mc.h
  
  QT1010 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
@@@ -14752,7 -14692,7 +14775,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  F:    drivers/net/wireless/ath/ath11k/
  
  QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
 -M:    QCA ath9k Development <ath9k-devel@qca.qualcomm.com>
 +M:    ath9k-devel@qca.qualcomm.com
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
@@@ -14903,7 -14843,7 +14926,7 @@@ M:   Alex Deucher <alexander.deucher@amd.
  M:    Christian König <christian.koenig@amd.com>
  L:    amd-gfx@lists.freedesktop.org
  S:    Supported
 -T:    git git://people.freedesktop.org/~agd5f/linux
 +T:    git https://gitlab.freedesktop.org/agd5f/linux.git
  F:    drivers/gpu/drm/amd/
  F:    drivers/gpu/drm/radeon/
  F:    include/uapi/drm/amdgpu_drm.h
@@@ -15048,18 -14988,6 +15071,18 @@@ F: drivers/media/i2c/max9271.
  F:    drivers/media/i2c/max9271.h
  F:    drivers/media/i2c/rdacm20.c
  
 +RDACM21 Camera Sensor
 +M:    Jacopo Mondi <jacopo+renesas@jmondi.org>
 +M:    Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
 +M:    Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
 +M:    Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/rdacm2x-gmsl.yaml
 +F:    drivers/media/i2c/max9271.c
 +F:    drivers/media/i2c/max9271.h
 +F:    drivers/media/i2c/rdacm21.c
 +
  RDC R-321X SoC
  M:    Florian Fainelli <florian@openwrt.org>
  S:    Maintained
@@@ -15784,6 -15712,7 +15807,6 @@@ F:   drivers/media/i2c/s5k5baf.
  SAMSUNG S5P Security SubSystem (SSS) DRIVER
  M:    Krzysztof Kozlowski <krzk@kernel.org>
  M:    Vladimir Zapolskiy <vz@mleia.com>
 -M:    Kamil Konieczny <k.konieczny@samsung.com>
  L:    linux-crypto@vger.kernel.org
  L:    linux-samsung-soc@vger.kernel.org
  S:    Maintained
@@@ -16331,13 -16260,12 +16354,13 @@@ S:        Maintaine
  F:    Documentation/fb/sm712fb.rst
  F:    drivers/video/fbdev/sm712*
  
 -SIMPLE FIRMWARE INTERFACE (SFI)
 -S:    Obsolete
 -W:    http://simplefirmware.org/
 -F:    arch/x86/platform/sfi/
 -F:    drivers/sfi/
 -F:    include/linux/sfi*.h
 +SILVACO I3C DUAL-ROLE MASTER
 +M:    Miquel Raynal <miquel.raynal@bootlin.com>
 +M:    Conor Culhane <conor.culhane@silvaco.com>
 +L:    linux-i3c@lists.infradead.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/i3c/silvaco,i3c-master.yaml
 +F:    drivers/i3c/master/svc-i3c-master.c
  
  SIMPLEFB FB DRIVER
  M:    Hans de Goede <hdegoede@redhat.com>
@@@ -16416,7 -16344,6 +16439,7 @@@ M:   Pekka Enberg <penberg@kernel.org
  M:    David Rientjes <rientjes@google.com>
  M:    Joonsoo Kim <iamjoonsoo.kim@lge.com>
  M:    Andrew Morton <akpm@linux-foundation.org>
 +M:    Vlastimil Babka <vbabka@suse.cz>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    include/linux/sl?b*.h
@@@ -16636,7 -16563,6 +16659,7 @@@ M:   Sakari Ailus <sakari.ailus@linux.int
  L:    linux-media@vger.kernel.org
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/imx258.yaml
  F:    drivers/media/i2c/imx258.c
  
  SONY IMX274 SENSOR DRIVER
@@@ -16662,15 -16588,6 +16685,15 @@@ S: Maintaine
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/i2c/imx319.c
  
 +SONY IMX334 SENSOR DRIVER
 +M:    Paul J. Murphy <paul.j.murphy@intel.com>
 +M:    Daniele Alessandrelli <daniele.alessandrelli@intel.com>
 +L:    linux-media@vger.kernel.org
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx334.yaml
 +F:    drivers/media/i2c/imx334.c
 +
  SONY IMX355 SENSOR DRIVER
  M:    Tianshu Qiu <tian.shu.qiu@intel.com>
  L:    linux-media@vger.kernel.org
@@@ -16760,7 -16677,6 +16783,7 @@@ R:   Pierre-Louis Bossart <pierre-louis.b
  R:    Sanyog Kale <sanyog.r.kale@intel.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire.git
  F:    Documentation/driver-api/soundwire/
  F:    drivers/soundwire/
  F:    include/linux/soundwire/
@@@ -16817,8 -16733,6 +16840,8 @@@ M:   Samuel Thibault <samuel.thibault@ens
  L:    speakup@linux-speakup.org
  S:    Odd Fixes
  W:    http://www.linux-speakup.org/
 +W:    https://github.com/linux-speakup/speakup
 +B:    https://github.com/linux-speakup/speakup/issues
  F:    drivers/accessibility/speakup/
  
  SPEAR CLOCK FRAMEWORK SUPPORT
@@@ -17042,6 -16956,12 +17065,6 @@@ F:  include/linux/static_call*.
  F:    kernel/jump_label.c
  F:    kernel/static_call.c
  
 -STEC S1220 SKD DRIVER
 -M:    Damien Le Moal <Damien.LeMoal@wdc.com>
 -L:    linux-block@vger.kernel.org
 -S:    Maintained
 -F:    drivers/block/skd*[ch]
 -
  STI AUDIO (ASoC) DRIVERS
  M:    Arnaud Pouliquen <arnaud.pouliquen@st.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
@@@ -17067,7 -16987,7 +17090,7 @@@ M:   Olivier Moysan <olivier.moysan@st.co
  M:    Arnaud Pouliquen <arnaud.pouliquen@st.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/sound/st,stm32-*.txt
 +F:    Documentation/devicetree/bindings/iio/adc/st,stm32-*.yaml
  F:    sound/soc/stm/
  
  STM32 TIMER/LPTIMER DRIVERS
@@@ -17311,7 -17231,6 +17334,7 @@@ F:   drivers/mfd/syscon.
  
  SYSTEM CONTROL & POWER/MANAGEMENT INTERFACE (SCPI/SCMI) Message Protocol drivers
  M:    Sudeep Holla <sudeep.holla@arm.com>
 +R:    Cristian Marussi <cristian.marussi@arm.com>
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/arm,sc[mp]i.txt
@@@ -17319,7 -17238,6 +17342,7 @@@ F:   drivers/clk/clk-sc[mp]i.
  F:    drivers/cpufreq/sc[mp]i-cpufreq.c
  F:    drivers/firmware/arm_scmi/
  F:    drivers/firmware/arm_scpi.c
 +F:    drivers/regulator/scmi-regulator.c
  F:    drivers/reset/reset-scmi.c
  F:    include/linux/sc[mp]i_protocol.h
  F:    include/trace/events/scmi.h
@@@ -17603,14 -17521,6 +17626,14 @@@ M: Laxman Dewangan <ldewangan@nvidia.co
  S:    Supported
  F:    drivers/spi/spi-tegra*
  
 +TEGRA QUAD SPI DRIVER
 +M:    Thierry Reding <thierry.reding@gmail.com>
 +M:    Jonathan Hunter <jonathanh@nvidia.com>
 +M:    Sowjanya Komatineni <skomatineni@nvidia.com>
 +L:    linux-tegra@vger.kernel.org
 +S:    Maintained
 +F:    drivers/spi/spi-tegra210-quad.c
 +
  TEGRA VIDEO DRIVER
  M:    Thierry Reding <thierry.reding@gmail.com>
  M:    Jonathan Hunter <jonathanh@nvidia.com>
@@@ -17654,7 -17564,7 +17677,7 @@@ F:   arch/xtensa
  F:    drivers/irqchip/irq-xtensa-*
  
  TEXAS INSTRUMENTS ASoC DRIVERS
 -M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
 +M:    Peter Ujfalusi <peter.ujfalusi@gmail.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Maintained
  F:    sound/soc/ti/
@@@ -17666,22 -17576,9 +17689,22 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/iio/dac/ti,dac7612.txt
  F:    drivers/iio/dac/ti-dac7612.c
  
 +TEXAS INSTRUMENTS DMA DRIVERS
 +M:    Peter Ujfalusi <peter.ujfalusi@gmail.com>
 +L:    dmaengine@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt
 +F:    Documentation/devicetree/bindings/dma/ti-edma.txt
 +F:    Documentation/devicetree/bindings/dma/ti/
 +F:    drivers/dma/ti/
 +X:    drivers/dma/ti/cppi41.c
 +F:    include/linux/dma/k3-udma-glue.h
 +F:    include/linux/dma/ti-cppi5.h
 +F:    include/linux/dma/k3-psil.h
 +
  TEXAS INSTRUMENTS' SYSTEM CONTROL INTERFACE (TISCI) PROTOCOL DRIVER
  M:    Nishanth Menon <nm@ti.com>
 -M:    Tero Kristo <t-kristo@ti.com>
 +M:    Tero Kristo <kristo@kernel.org>
  M:    Santosh Shilimkar <ssantosh@kernel.org>
  L:    linux-arm-kernel@lists.infradead.org
  S:    Maintained
@@@ -17703,15 -17600,6 +17726,15 @@@ F: include/dt-bindings/soc/ti,sci_pm_do
  F:    include/linux/soc/ti/ti_sci_inta_msi.h
  F:    include/linux/soc/ti/ti_sci_protocol.h
  
 +TEXAS INSTRUMENTS TPS23861 PoE PSE DRIVER
 +M:    Robert Marko <robert.marko@sartura.hr>
 +M:    Luka Perkov <luka.perkov@sartura.hr>
 +L:    linux-hwmon@vger.kernel.org
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/ti,tps23861.yaml
 +F:    Documentation/hwmon/tps23861.rst
 +F:    drivers/hwmon/tps23861.c
 +
  THANKO'S RAREMONO AM/FM/SW RADIO RECEIVER USB DRIVER
  M:    Hans Verkuil <hverkuil@xs4all.nl>
  L:    linux-media@vger.kernel.org
@@@ -17765,7 -17653,7 +17788,7 @@@ F:   drivers/thermal/gov_power_allocator.
  F:    include/trace/events/thermal_power_allocator.h
  
  THINKPAD ACPI EXTRAS DRIVER
 -M:    Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>
 +M:    Henrique de Moraes Holschuh <hmh@hmh.eng.br>
  L:    ibm-acpi-devel@lists.sourceforge.net
  L:    platform-driver-x86@vger.kernel.org
  S:    Maintained
@@@ -17834,9 -17722,9 +17857,9 @@@ S:   Maintaine
  F:    drivers/clk/clk-cdce706.c
  
  TI CLOCK DRIVER
 -M:    Tero Kristo <t-kristo@ti.com>
 +M:    Tero Kristo <kristo@kernel.org>
  L:    linux-omap@vger.kernel.org
 -S:    Maintained
 +S:    Odd Fixes
  F:    drivers/clk/ti/
  F:    include/linux/clk/ti.h
  
@@@ -17962,7 -17850,7 +17985,7 @@@ M:   Dan Murphy <dmurphy@ti.com
  L:    linux-can@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/can/tcan4x5x.txt
 -F:    drivers/net/can/m_can/tcan4x5x.c
 +F:    drivers/net/can/m_can/tcan4x5x*
  
  TI TRF7970A NFC DRIVER
  M:    Mark Greer <mgreer@animalcreek.com>
@@@ -17973,7 -17861,7 +17996,7 @@@ F:   Documentation/devicetree/bindings/ne
  F:    drivers/nfc/trf7970a.c
  
  TI TWL4030 SERIES SOC CODEC DRIVER
 -M:    Peter Ujfalusi <peter.ujfalusi@ti.com>
 +M:    Peter Ujfalusi <peter.ujfalusi@gmail.com>
  L:    alsa-devel@alsa-project.org (moderated for non-subscribers)
  S:    Maintained
  F:    sound/soc/codecs/twl4030*
@@@ -18226,7 -18114,7 +18249,7 @@@ F:   Documentation/networking/tuntap.rs
  F:    arch/um/os-Linux/drivers/
  
  TURBOCHANNEL SUBSYSTEM
 -M:    "Maciej W. Rozycki" <macro@linux-mips.org>
 +M:    "Maciej W. Rozycki" <macro@orcam.me.uk>
  M:    Ralf Baechle <ralf@linux-mips.org>
  L:    linux-mips@vger.kernel.org
  S:    Maintained
@@@ -18505,7 -18393,7 +18528,7 @@@ F:   include/linux/usb/isp116x.
  
  USB LAN78XX ETHERNET DRIVER
  M:    Woojung Huh <woojung.huh@microchip.com>
 -M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
 +M:    UNGLinuxDriver@microchip.com
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/microchip,lan78xx.txt
@@@ -18539,7 -18427,7 +18562,7 @@@ F:   Documentation/usb/ohci.rs
  F:    drivers/usb/host/ohci*
  
  USB OTG FSM (Finite State Machine)
 -M:    Peter Chen <Peter.Chen@nxp.com>
 +M:    Peter Chen <peter.chen@kernel.org>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
@@@ -18619,7 -18507,7 +18642,7 @@@ F:   drivers/net/usb/smsc75xx.
  
  USB SMSC95XX ETHERNET DRIVER
  M:    Steve Glendinning <steve.glendinning@shawell.net>
 -M:    Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
 +M:    UNGLinuxDriver@microchip.com
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/usb/smsc95xx.*
@@@ -19166,7 -19054,7 +19189,7 @@@ F:   drivers/input/mouse/vmmouse.
  
  VMWARE VMXNET3 ETHERNET DRIVER
  M:    Ronak Doshi <doshir@vmware.com>
 -M:    "VMware, Inc." <pv-drivers@vmware.com>
 +M:    pv-drivers@vmware.com
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/vmxnet3/
@@@ -19193,6 -19081,7 +19216,6 @@@ K:   regulator_get_optiona
  
  VRF
  M:    David Ahern <dsahern@kernel.org>
 -M:    Shrijeet Mukherjee <shrijeet@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    Documentation/networking/vrf.rst
@@@ -19543,7 -19432,7 +19566,7 @@@ F:   drivers/net/ethernet/*/*/*xdp
  K:    (?:\b|_)xdp(?:\b|_)
  
  XDP SOCKETS (AF_XDP)
 -M:    Björn Töpel <bjorn.topel@intel.com>
 +M:    Björn Töpel <bjorn@kernel.org>
  M:    Magnus Karlsson <magnus.karlsson@intel.com>
  R:    Jonathan Lemon <jonathan.lemon@gmail.com>
  L:    netdev@vger.kernel.org
@@@ -19639,7 -19528,7 +19662,7 @@@ F:   arch/x86/xen/*swiotlb
  F:    drivers/xen/*swiotlb*
  
  XFS FILESYSTEM
 -M:    Darrick J. Wong <darrick.wong@oracle.com>
 +M:    Darrick J. Wong <djwong@kernel.org>
  M:    linux-xfs@vger.kernel.org
  L:    linux-xfs@vger.kernel.org
  S:    Supported
@@@ -19859,7 -19748,7 +19882,7 @@@ F:   Documentation/admin-guide/blockdev/z
  F:    drivers/block/zram/
  
  ZS DECSTATION Z85C30 SERIAL DRIVER
 -M:    "Maciej W. Rozycki" <macro@linux-mips.org>
 +M:    "Maciej W. Rozycki" <macro@orcam.me.uk>
  S:    Maintained
  F:    drivers/tty/serial/zs.*
  
diff --combined arch/arm64/Kconfig
index a254f4871683f0c62156662a1e4b01137bf2c1b6,ff9f5c05cca349cc1164bc1276bed2f9e8c2946d..1f212b47a48a1033d1799c946f0bb0b9dca96fd2
@@@ -73,8 -73,6 +73,8 @@@ config ARM6
        select ARCH_SUPPORTS_DEBUG_PAGEALLOC
        select ARCH_SUPPORTS_MEMORY_FAILURE
        select ARCH_SUPPORTS_SHADOW_CALL_STACK if CC_HAVE_SHADOW_CALL_STACK
 +      select ARCH_SUPPORTS_LTO_CLANG if CPU_LITTLE_ENDIAN
 +      select ARCH_SUPPORTS_LTO_CLANG_THIN
        select ARCH_SUPPORTS_ATOMIC_RMW
        select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 && (GCC_VERSION >= 50000 || CC_IS_CLANG)
        select ARCH_SUPPORTS_NUMA_BALANCING
        select HAVE_ARCH_KASAN if !(ARM64_16K_PAGES && ARM64_VA_BITS_48)
        select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
        select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
 +      select HAVE_ARCH_KFENCE
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_MMAP_RND_BITS
        select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
        select HAVE_DYNAMIC_FTRACE
        select HAVE_DYNAMIC_FTRACE_WITH_REGS \
                if $(cc-option,-fpatchable-function-entry=2)
 +      select FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY \
 +              if DYNAMIC_FTRACE_WITH_REGS
        select HAVE_EFFICIENT_UNALIGNED_ACCESS
        select HAVE_FAST_GUP
        select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_NMI
        select HAVE_PATA_PLATFORM
        select HAVE_PERF_EVENTS
 -      select HAVE_PERF_EVENTS_NMI if ARM64_PSEUDO_NMI && HW_PERF_EVENTS
 -      select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI
        select HAVE_PERF_REGS
        select HAVE_PERF_USER_STACK_DUMP
        select HAVE_REGS_AND_STACK_ACCESS_API
@@@ -527,7 -524,7 +527,7 @@@ config ARM64_ERRATUM_102471
        help
          This option adds a workaround for ARM Cortex-A55 Erratum 1024718.
  
 -        Affected Cortex-A55 cores (r0p0, r0p1, r1p0) could cause incorrect
 +        Affected Cortex-A55 cores (all revisions) could cause incorrect
          update of the hardware dirty bit when the DBM/AP bits are updated
          without a break-before-make. The workaround is to disable the usage
          of hardware DBM locally on the affected cores. CPUs not affected by
@@@ -957,9 -954,8 +957,9 @@@ choic
          that is selected here.
  
  config CPU_BIG_ENDIAN
 -       bool "Build big-endian kernel"
 -       help
 +      bool "Build big-endian kernel"
 +      depends on !LD_IS_LLD || LLD_VERSION >= 130000
 +      help
          Say Y if you plan on running a kernel with a big-endian userspace.
  
  config CPU_LITTLE_ENDIAN
@@@ -999,6 -995,7 +999,7 @@@ config HOTPLUG_CP
  # Common NUMA Features
  config NUMA
        bool "NUMA Memory Allocation and Scheduler Support"
+       select GENERIC_ARCH_NUMA
        select ACPI_NUMA if ACPI
        select OF_NUMA
        help
@@@ -1138,10 -1135,6 +1139,10 @@@ config CRASH_DUM
  
          For more details see Documentation/admin-guide/kdump/kdump.rst
  
 +config TRANS_TABLE
 +      def_bool y
 +      depends on HIBERNATION
 +
  config XEN_DOM0
        def_bool y
        depends on XEN
@@@ -1223,6 -1216,7 +1224,6 @@@ config ARM64_TAGGED_ADDR_AB
  menuconfig COMPAT
        bool "Kernel support for 32-bit EL0"
        depends on ARM64_4K_PAGES || EXPERT
 -      select COMPAT_BINFMT_ELF if BINFMT_ELF
        select HAVE_UID16
        select OLD_SIGSUSPEND3
        select COMPAT_OLD_SIGACTION
@@@ -1486,7 -1480,7 +1487,7 @@@ config ARM64_PTR_AUT
        depends on (CC_HAS_SIGN_RETURN_ADDRESS || CC_HAS_BRANCH_PROT_PAC_RET) && AS_HAS_PAC
        # Modern compilers insert a .note.gnu.property section note for PAC
        # which is only understood by binutils starting with version 2.33.1.
 -      depends on LD_IS_LLD || LD_VERSION >= 233010000 || (CC_IS_GCC && GCC_VERSION < 90100)
 +      depends on LD_IS_LLD || LD_VERSION >= 23301 || (CC_IS_GCC && GCC_VERSION < 90100)
        depends on !CC_IS_CLANG || AS_HAS_CFI_NEGATE_RA_STATE
        depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_REGS)
        help
diff --combined arch/arm64/mm/Makefile
index 77222d92667a7222d3fd715d048f2adfeffd7440,cd60e4fed78f542d642ba865bb2ac5cc183e721b..f188c9092696308c9ae75ad0505af66ee0712bf8
@@@ -6,8 -6,6 +6,7 @@@ obj-y                            := dma-mapping.o extable.o fau
  obj-$(CONFIG_HUGETLB_PAGE)    += hugetlbpage.o
  obj-$(CONFIG_PTDUMP_CORE)     += ptdump.o
  obj-$(CONFIG_PTDUMP_DEBUGFS)  += ptdump_debugfs.o
- obj-$(CONFIG_NUMA)            += numa.o
 +obj-$(CONFIG_TRANS_TABLE)     += trans_pgd.o
  obj-$(CONFIG_DEBUG_VIRTUAL)   += physaddr.o
  obj-$(CONFIG_ARM64_MTE)               += mteswap.o
  KASAN_SANITIZE_physaddr.o     += n
diff --combined arch/arm64/mm/init.c
index 709d98fea90cc1f8b08c85864fbaa6fd6a0b7d42,35adf6a9e98e1db0331b3ae473238e9f4afcf385..0ace5e68efba0ea05b32c989ac6ae987364fc89c
@@@ -53,13 -53,13 +53,13 @@@ s64 memstart_addr __ro_after_init = -1
  EXPORT_SYMBOL(memstart_addr);
  
  /*
 - * We create both ZONE_DMA and ZONE_DMA32. ZONE_DMA covers the first 1G of
 - * memory as some devices, namely the Raspberry Pi 4, have peripherals with
 - * this limited view of the memory. ZONE_DMA32 will cover the rest of the 32
 - * bit addressable memory area.
 + * If the corresponding config options are enabled, we create both ZONE_DMA
 + * and ZONE_DMA32. By default ZONE_DMA covers the 32-bit addressable memory
 + * unless restricted on specific platforms (e.g. 30-bit on Raspberry Pi 4).
 + * In such case, ZONE_DMA32 covers the rest of the 32-bit addressable memory,
 + * otherwise it is empty.
   */
  phys_addr_t arm64_dma_phys_limit __ro_after_init;
 -static phys_addr_t arm64_dma32_phys_limit __ro_after_init;
  
  #ifdef CONFIG_KEXEC_CORE
  /*
@@@ -84,7 -84,7 +84,7 @@@ static void __init reserve_crashkernel(
  
        if (crash_base == 0) {
                /* Current arm64 boot protocol requires 2MB alignment */
 -              crash_base = memblock_find_in_range(0, arm64_dma32_phys_limit,
 +              crash_base = memblock_find_in_range(0, arm64_dma_phys_limit,
                                crash_size, SZ_2M);
                if (crash_base == 0) {
                        pr_warn("cannot allocate crashkernel (size:0x%llx)\n",
@@@ -196,7 -196,6 +196,7 @@@ static void __init zone_sizes_init(unsi
        unsigned long max_zone_pfns[MAX_NR_ZONES]  = {0};
        unsigned int __maybe_unused acpi_zone_dma_bits;
        unsigned int __maybe_unused dt_zone_dma_bits;
 +      phys_addr_t __maybe_unused dma32_phys_limit = max_zone_phys(32);
  
  #ifdef CONFIG_ZONE_DMA
        acpi_zone_dma_bits = fls64(acpi_iort_dma_get_max_cpu_address());
        max_zone_pfns[ZONE_DMA] = PFN_DOWN(arm64_dma_phys_limit);
  #endif
  #ifdef CONFIG_ZONE_DMA32
 -      max_zone_pfns[ZONE_DMA32] = PFN_DOWN(arm64_dma32_phys_limit);
 +      max_zone_pfns[ZONE_DMA32] = PFN_DOWN(dma32_phys_limit);
 +      if (!arm64_dma_phys_limit)
 +              arm64_dma_phys_limit = dma32_phys_limit;
  #endif
 +      if (!arm64_dma_phys_limit)
 +              arm64_dma_phys_limit = PHYS_MASK + 1;
        max_zone_pfns[ZONE_NORMAL] = max;
  
        free_area_init(max_zone_pfns);
@@@ -399,9 -394,16 +399,9 @@@ void __init arm64_memblock_init(void
  
        early_init_fdt_scan_reserved_mem();
  
 -      if (IS_ENABLED(CONFIG_ZONE_DMA32))
 -              arm64_dma32_phys_limit = max_zone_phys(32);
 -      else
 -              arm64_dma32_phys_limit = PHYS_MASK + 1;
 -
        reserve_elfcorehdr();
  
        high_memory = __va(memblock_end_of_DRAM() - 1) + 1;
 -
 -      dma_contiguous_reserve(arm64_dma32_phys_limit);
  }
  
  void __init bootmem_init(void)
        max_pfn = max_low_pfn = max;
        min_low_pfn = min;
  
-       arm64_numa_init();
+       arch_numa_init();
  
        /*
-        * must be done after arm64_numa_init() which calls numa_init() to
+        * must be done after arch_numa_init() which calls numa_init() to
         * initialize node_online_map that gets used in hugetlb_cma_reserve()
         * while allocating required CMA size across online nodes.
         */
        sparse_init();
        zone_sizes_init(min, max);
  
 +      /*
 +       * Reserve the CMA area after arm64_dma_phys_limit was initialised.
 +       */
 +      dma_contiguous_reserve(arm64_dma_phys_limit);
 +
        /*
         * request_standard_resources() depends on crashkernel's memory being
         * reserved, so do it here.
  void __init mem_init(void)
  {
        if (swiotlb_force == SWIOTLB_FORCE ||
 -          max_pfn > PFN_DOWN(arm64_dma_phys_limit ? : arm64_dma32_phys_limit))
 +          max_pfn > PFN_DOWN(arm64_dma_phys_limit))
                swiotlb_init(1);
        else
                swiotlb_force = SWIOTLB_NO_FORCE;
diff --combined arch/riscv/Kconfig
index e0a34eb5ed3b37a199d44fd661a4dabd57be603b,3832a537c5d64931d4570375ca7e6d9887fea7be..a998babc1237c1e8c6b3bc5ef3c7b47ed54d71da
@@@ -57,6 -57,7 +57,7 @@@ config RISC
        select HAVE_ARCH_JUMP_LABEL
        select HAVE_ARCH_JUMP_LABEL_RELATIVE
        select HAVE_ARCH_KASAN if MMU && 64BIT
+       select HAVE_ARCH_KASAN_VMALLOC if MMU && 64BIT
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_KGDB_QXFER_PKT
        select HAVE_ARCH_MMAP_RND_BITS if MMU
        select HAVE_DEBUG_KMEMLEAK
        select HAVE_DMA_CONTIGUOUS if MMU
        select HAVE_EBPF_JIT if MMU
+       select HAVE_FUNCTION_ERROR_INJECTION
        select HAVE_FUTEX_CMPXCHG if FUTEX
        select HAVE_GCC_PLUGINS
        select HAVE_GENERIC_VDSO if MMU && 64BIT
        select HAVE_IRQ_TIME_ACCOUNTING
+       select HAVE_KPROBES
+       select HAVE_KPROBES_ON_FTRACE
+       select HAVE_KRETPROBES
        select HAVE_PCI
        select HAVE_PERF_EVENTS
        select HAVE_PERF_REGS
        select HAVE_PERF_USER_STACK_DUMP
+       select HAVE_REGS_AND_STACK_ACCESS_API
        select HAVE_STACKPROTECTOR
        select HAVE_SYSCALL_TRACEPOINTS
        select IRQ_DOMAIN
@@@ -137,13 -143,13 +143,13 @@@ config PA_BIT
  
  config PAGE_OFFSET
        hex
 -      default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB
 +      default 0xC0000000 if 32BIT && MAXPHYSMEM_1GB
        default 0x80000000 if 64BIT && !MMU
        default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
        default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
  
  config ARCH_FLATMEM_ENABLE
-       def_bool y
+       def_bool !NUMA
  
  config ARCH_SPARSEMEM_ENABLE
        def_bool y
@@@ -156,6 -162,9 +162,9 @@@ config ARCH_SELECT_MEMORY_MODE
  config ARCH_WANT_GENERAL_HUGETLB
        def_bool y
  
+ config ARCH_SUPPORTS_UPROBES
+       def_bool y
  config SYS_SUPPORTS_HUGETLBFS
        depends on MMU
        def_bool y
@@@ -247,15 -256,11 +256,15 @@@ config MODULE_SECTION
  
  choice
        prompt "Maximum Physical Memory"
 -      default MAXPHYSMEM_2GB if 32BIT
 +      default MAXPHYSMEM_1GB if 32BIT
        default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW
        default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
  
 +      config MAXPHYSMEM_1GB
 +              depends on 32BIT
 +              bool "1GiB"
        config MAXPHYSMEM_2GB
 +              depends on 64BIT && CMODEL_MEDLOW
                bool "2GiB"
        config MAXPHYSMEM_128GB
                depends on 64BIT && CMODEL_MEDANY
@@@ -302,6 -307,35 +311,35 @@@ config TUNE_GENERI
  
  endchoice
  
+ # Common NUMA Features
+ config NUMA
+       bool "NUMA Memory Allocation and Scheduler Support"
+       select GENERIC_ARCH_NUMA
+       select OF_NUMA
+       select ARCH_SUPPORTS_NUMA_BALANCING
+       help
+         Enable NUMA (Non-Uniform Memory Access) support.
+         The kernel will try to allocate memory used by a CPU on the
+         local memory of the CPU and add some more NUMA awareness to the kernel.
+ config NODES_SHIFT
+       int "Maximum NUMA Nodes (as a power of 2)"
+       range 1 10
+       default "2"
+       depends on NEED_MULTIPLE_NODES
+       help
+         Specify the maximum number of NUMA Nodes available on the target
+         system.  Increases memory reserved to accommodate various tables.
+ config USE_PERCPU_NUMA_NODE_ID
+       def_bool y
+       depends on NUMA
+ config NEED_PER_CPU_EMBED_FIRST_CHUNK
+       def_bool y
+       depends on NUMA
  config RISCV_ISA_C
        bool "Emit compressed instructions when building Linux"
        default y
@@@ -416,11 -450,17 +454,17 @@@ config EF
          allow the kernel to be booted as an EFI application. This
          is only useful on systems that have UEFI firmware.
  
+ config CC_HAVE_STACKPROTECTOR_TLS
+       def_bool $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=tp -mstack-protector-guard-offset=0)
+ config STACKPROTECTOR_PER_TASK
+       def_bool y
+       depends on STACKPROTECTOR && CC_HAVE_STACKPROTECTOR_TLS
  endmenu
  
  config BUILTIN_DTB
        def_bool n
-       depends on RISCV_M_MODE
        depends on OF
  
  menu "Power management options"
index 64a675c5c30acb2c9806645ba9f3f5e7297cef21,e49d51b97bc133e2050a52b7d65813c3d8c840c0..adc9d26f3d752dd02e434f0be04958a871459a0c
@@@ -97,9 -97,6 +97,6 @@@ extern unsigned long pfn_base
  #define ARCH_PFN_OFFSET               (PAGE_OFFSET >> PAGE_SHIFT)
  #endif /* CONFIG_MMU */
  
- extern unsigned long max_low_pfn;
- extern unsigned long min_low_pfn;
  #define __pa_to_va_nodebug(x) ((void *)((unsigned long) (x) + va_pa_offset))
  #define __va_to_pa_nodebug(x) ((unsigned long)(x) - va_pa_offset)
  
@@@ -135,10 -132,7 +132,10 @@@ extern phys_addr_t __phys_addr_symbol(u
  
  #endif /* __ASSEMBLY__ */
  
 -#define virt_addr_valid(vaddr)        (pfn_valid(virt_to_pfn(vaddr)))
 +#define virt_addr_valid(vaddr)        ({                                              \
 +      unsigned long _addr = (unsigned long)vaddr;                             \
 +      (unsigned long)(_addr) >= PAGE_OFFSET && pfn_valid(virt_to_pfn(_addr)); \
 +})
  
  #define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_NON_EXEC
  
index 251e1db088fa2d8508762bcc5e459f2e7b120684,25e90cf0bde49a3ea3449d5601d91f3419b5bc10..ebf817c1bdf4b3d955875670494d1828bd042d26
@@@ -99,6 -99,7 +99,6 @@@
                                | _PAGE_DIRTY)
  
  #define PAGE_KERNEL           __pgprot(_PAGE_KERNEL)
 -#define PAGE_KERNEL_EXEC      __pgprot(_PAGE_KERNEL | _PAGE_EXEC)
  #define PAGE_KERNEL_READ      __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE)
  #define PAGE_KERNEL_EXEC      __pgprot(_PAGE_KERNEL | _PAGE_EXEC)
  #define PAGE_KERNEL_READ_EXEC __pgprot((_PAGE_KERNEL & ~_PAGE_WRITE) \
@@@ -186,6 -187,11 +186,11 @@@ static inline unsigned long pmd_page_va
        return (unsigned long)pfn_to_virt(pmd_val(pmd) >> _PAGE_PFN_SHIFT);
  }
  
+ static inline pte_t pmd_pte(pmd_t pmd)
+ {
+       return __pte(pmd_val(pmd));
+ }
  /* Yields the page frame number (PFN) of a page table entry */
  static inline unsigned long pte_pfn(pte_t pte)
  {
@@@ -289,6 -295,21 +294,21 @@@ static inline pte_t pte_mkhuge(pte_t pt
        return pte;
  }
  
+ #ifdef CONFIG_NUMA_BALANCING
+ /*
+  * See the comment in include/asm-generic/pgtable.h
+  */
+ static inline int pte_protnone(pte_t pte)
+ {
+       return (pte_val(pte) & (_PAGE_PRESENT | _PAGE_PROT_NONE)) == _PAGE_PROT_NONE;
+ }
+ static inline int pmd_protnone(pmd_t pmd)
+ {
+       return pte_protnone(pmd_pte(pmd));
+ }
+ #endif
  /* Modify page protection bits */
  static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
  {
@@@ -468,6 -489,7 +488,7 @@@ extern void *dtb_early_va
  extern uintptr_t dtb_early_pa;
  void setup_bootmem(void);
  void paging_init(void);
+ void misc_mem_init(void);
  
  #define FIRST_USER_ADDRESS  0
  
index 8b80c80c7f1acad9d9e1b3cb29d28a005fd83cd3,9fa510707012dd3b99298c30d5283730278ace25..6887b3d9f3712bb5f4558b5c40b91b9559ad7335
@@@ -22,7 -22,7 +22,7 @@@ static inline int set_memory_ro(unsigne
  static inline int set_memory_rw(unsigned long addr, int numpages) { return 0; }
  static inline int set_memory_x(unsigned long addr, int numpages) { return 0; }
  static inline int set_memory_nx(unsigned long addr, int numpages) { return 0; }
- static inline void protect_kernel_text_data(void) {};
+ static inline void protect_kernel_text_data(void) {}
  static inline int set_memory_rw_nx(unsigned long addr, int numpages) { return 0; }
  #endif
  
@@@ -32,14 -32,14 +32,14 @@@ bool kernel_page_present(struct page *p
  
  #endif /* __ASSEMBLY__ */
  
 -#ifdef CONFIG_ARCH_HAS_STRICT_KERNEL_RWX
 +#ifdef CONFIG_STRICT_KERNEL_RWX
  #ifdef CONFIG_64BIT
  #define SECTION_ALIGN (1 << 21)
  #else
  #define SECTION_ALIGN (1 << 22)
  #endif
 -#else /* !CONFIG_ARCH_HAS_STRICT_KERNEL_RWX */
 +#else /* !CONFIG_STRICT_KERNEL_RWX */
  #define SECTION_ALIGN L1_CACHE_BYTES
 -#endif /* CONFIG_ARCH_HAS_STRICT_KERNEL_RWX */
 +#endif /* CONFIG_STRICT_KERNEL_RWX */
  
  #endif /* _ASM_RISCV_SET_MEMORY_H */
index c7c0655dd45b0f617a34d89b315e5829638c43af,4945b5085241f98e9ab61b222d307781d81c3f58..e85bacff1b5075ee3b704f7a65e40d102d0a9de3
@@@ -127,9 -127,7 +127,9 @@@ static void __init init_resources(void
  {
        struct memblock_region *region = NULL;
        struct resource *res = NULL;
 -      int ret = 0;
 +      struct resource *mem_res = NULL;
 +      size_t mem_res_sz = 0;
 +      int ret = 0, i = 0;
  
        code_res.start = __pa_symbol(_text);
        code_res.end = __pa_symbol(_etext) - 1;
        bss_res.end = __pa_symbol(__bss_stop) - 1;
        bss_res.flags = IORESOURCE_SYSTEM_RAM | IORESOURCE_BUSY;
  
 +      mem_res_sz = (memblock.memory.cnt + memblock.reserved.cnt) * sizeof(*mem_res);
 +      mem_res = memblock_alloc(mem_res_sz, SMP_CACHE_BYTES);
 +      if (!mem_res)
 +              panic("%s: Failed to allocate %zu bytes\n", __func__, mem_res_sz);
        /*
         * Start by adding the reserved regions, if they overlap
         * with /memory regions, insert_resource later on will take
         * care of it.
         */
        for_each_reserved_mem_region(region) {
 -              res = memblock_alloc(sizeof(struct resource), SMP_CACHE_BYTES);
 -              if (!res)
 -                      panic("%s: Failed to allocate %zu bytes\n", __func__,
 -                            sizeof(struct resource));
 +              res = &mem_res[i++];
  
                res->name = "Reserved";
                res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
                 * Ignore any other reserved regions within
                 * system memory.
                 */
 -              if (memblock_is_memory(res->start))
 +              if (memblock_is_memory(res->start)) {
 +                      memblock_free((phys_addr_t) res, sizeof(struct resource));
                        continue;
 +              }
  
                ret = add_resource(&iomem_resource, res);
                if (ret < 0)
  
        /* Add /memory regions to the resource tree */
        for_each_mem_region(region) {
 -              res = memblock_alloc(sizeof(struct resource), SMP_CACHE_BYTES);
 -              if (!res)
 -                      panic("%s: Failed to allocate %zu bytes\n", __func__,
 -                            sizeof(struct resource));
 +              res = &mem_res[i++];
  
                if (unlikely(memblock_is_nomap(region))) {
                        res->name = "Reserved";
        return;
  
   error:
 -      memblock_free((phys_addr_t) res, sizeof(struct resource));
        /* Better an empty resource tree than an inconsistent one */
        release_child_resources(&iomem_resource);
 +      memblock_free((phys_addr_t) mem_res, mem_res_sz);
  }
  
  
  static void __init parse_dtb(void)
  {
        /* Early scan of device tree from init memory */
-       if (early_init_dt_scan(dtb_early_va))
+       if (early_init_dt_scan(dtb_early_va)) {
+               const char *name = of_flat_dt_get_machine_name();
+               if (name) {
+                       pr_info("Machine model: %s\n", name);
+                       dump_stack_set_arch_desc("%s (DT)", name);
+               }
                return;
+       }
  
        pr_err("No DTB passed to the kernel\n");
  #ifdef CONFIG_CMDLINE_FORCE
@@@ -252,9 -257,9 +259,9 @@@ void __init setup_arch(char **cmdline_p
        else
                pr_err("No DTB found in kernel mappings\n");
  #endif
+       misc_mem_init();
  
-       if (IS_ENABLED(CONFIG_RISCV_SBI))
-               sbi_init();
+       sbi_init();
  
        if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX))
                protect_kernel_text_data();
  
  static int __init topology_init(void)
  {
-       int i;
+       int i, ret;
+       for_each_online_node(i)
+               register_one_node(i);
  
        for_each_possible_cpu(i) {
                struct cpu *cpu = &per_cpu(cpu_devices, i);
  
                cpu->hotpluggable = cpu_has_hotplug(i);
-               register_cpu(cpu, i);
+               ret = register_cpu(cpu, i);
+               if (unlikely(ret))
+                       pr_warn("Warning: %s: register_cpu %d failed (%d)\n",
+                              __func__, i, ret);
        }
  
        return 0;
@@@ -293,8 -304,6 +306,8 @@@ void free_initmem(void
        unsigned long init_begin = (unsigned long)__init_begin;
        unsigned long init_end = (unsigned long)__init_end;
  
 -      set_memory_rw_nx(init_begin, (init_end - init_begin) >> PAGE_SHIFT);
 +      if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX))
 +              set_memory_rw_nx(init_begin, (init_end - init_begin) >> PAGE_SHIFT);
 +
        free_initmem_default(POISON_FREE_INITMEM);
  }
index df5d2da7c40be3fa9ec41e464911277b98321db3,51ce3620ac1f6cae7d06545938e9be34a2f87ec9..3f893c9d9d85a37ab08b0e2a3e447902156dc6bc
@@@ -14,7 -14,7 +14,7 @@@
  
  #include <asm/stacktrace.h>
  
 -register unsigned long sp_in_global __asm__("sp");
 +register const unsigned long sp_in_global __asm__("sp");
  
  #ifdef CONFIG_FRAME_POINTER
  
@@@ -28,8 -28,9 +28,8 @@@ void notrace walk_stackframe(struct tas
                sp = user_stack_pointer(regs);
                pc = instruction_pointer(regs);
        } else if (task == NULL || task == current) {
 -              const register unsigned long current_sp = sp_in_global;
                fp = (unsigned long)__builtin_frame_address(0);
 -              sp = current_sp;
 +              sp = sp_in_global;
                pc = (unsigned long)walk_stackframe;
        } else {
                /* task blocked in __switch_to */
                /* Unwind stack frame */
                frame = (struct stackframe *)fp - 1;
                sp = fp;
-               fp = frame->fp;
-               pc = ftrace_graph_ret_addr(current, NULL, frame->ra,
-                                          (unsigned long *)(fp - 8));
+               if (regs && (regs->epc == pc) && (frame->fp & 0x7)) {
+                       fp = frame->ra;
+                       pc = regs->ra;
+               } else {
+                       fp = frame->fp;
+                       pc = ftrace_graph_ret_addr(current, NULL, frame->ra,
+                                                  (unsigned long *)(fp - 8));
+               }
        }
  }
  
@@@ -100,10 -107,16 +106,16 @@@ static bool print_trace_address(void *a
        return true;
  }
  
+ void dump_backtrace(struct pt_regs *regs, struct task_struct *task,
+                   const char *loglvl)
+ {
+       pr_cont("%sCall Trace:\n", loglvl);
+       walk_stackframe(task, regs, print_trace_address, (void *)loglvl);
+ }
  void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl)
  {
-       pr_cont("Call Trace:\n");
-       walk_stackframe(task, NULL, print_trace_address, (void *)loglvl);
+       dump_backtrace(NULL, task, loglvl);
  }
  
  static bool save_wchan(void *arg, unsigned long pc)
diff --combined arch/riscv/mm/init.c
index f9f9568d689ef53e215c44de8b4468ae3033cfa9,3e044f11cef6a179feede6862be2298f29a0a089..9dfb8b2dffd6ebf255c7a9b03d32e8026313d94f
@@@ -21,6 -21,7 +21,7 @@@
  #include <asm/soc.h>
  #include <asm/io.h>
  #include <asm/ptdump.h>
+ #include <asm/numa.h>
  
  #include "../kernel/head.h"
  
@@@ -105,62 -106,12 +106,13 @@@ void __init mem_init(void
        print_vm_layout();
  }
  
- #ifdef CONFIG_BLK_DEV_INITRD
- static void __init setup_initrd(void)
- {
-       phys_addr_t start;
-       unsigned long size;
-       /* Ignore the virtul address computed during device tree parsing */
-       initrd_start = initrd_end = 0;
-       if (!phys_initrd_size)
-               return;
-       /*
-        * Round the memory region to page boundaries as per free_initrd_mem()
-        * This allows us to detect whether the pages overlapping the initrd
-        * are in use, but more importantly, reserves the entire set of pages
-        * as we don't want these pages allocated for other purposes.
-        */
-       start = round_down(phys_initrd_start, PAGE_SIZE);
-       size = phys_initrd_size + (phys_initrd_start - start);
-       size = round_up(size, PAGE_SIZE);
-       if (!memblock_is_region_memory(start, size)) {
-               pr_err("INITRD: 0x%08llx+0x%08lx is not a memory region",
-                      (u64)start, size);
-               goto disable;
-       }
-       if (memblock_is_region_reserved(start, size)) {
-               pr_err("INITRD: 0x%08llx+0x%08lx overlaps in-use memory region\n",
-                      (u64)start, size);
-               goto disable;
-       }
-       memblock_reserve(start, size);
-       /* Now convert initrd to virtual addresses */
-       initrd_start = (unsigned long)__va(phys_initrd_start);
-       initrd_end = initrd_start + phys_initrd_size;
-       initrd_below_start_ok = 1;
-       pr_info("Initial ramdisk at: 0x%p (%lu bytes)\n",
-               (void *)(initrd_start), size);
-       return;
- disable:
-       pr_cont(" - disabling initrd\n");
-       initrd_start = 0;
-       initrd_end = 0;
- }
- #endif /* CONFIG_BLK_DEV_INITRD */
  void __init setup_bootmem(void)
  {
        phys_addr_t mem_start = 0;
 -      phys_addr_t start, end = 0;
 +      phys_addr_t start, dram_end, end = 0;
        phys_addr_t vmlinux_end = __pa_symbol(&_end);
        phys_addr_t vmlinux_start = __pa_symbol(&_start);
 +      phys_addr_t max_mapped_addr = __pa(~(ulong)0);
        u64 i;
  
        /* Find the memory region containing the kernel */
        /* Reserve from the start of the kernel to the end of the kernel */
        memblock_reserve(vmlinux_start, vmlinux_end - vmlinux_start);
  
 -      max_pfn = PFN_DOWN(memblock_end_of_DRAM());
 +      dram_end = memblock_end_of_DRAM();
 +
 +      /*
 +       * memblock allocator is not aware of the fact that last 4K bytes of
 +       * the addressable memory can not be mapped because of IS_ERR_VALUE
 +       * macro. Make sure that last 4k bytes are not usable by memblock
 +       * if end of dram is equal to maximum addressable memory.
 +       */
 +      if (max_mapped_addr == (dram_end - 1))
 +              memblock_set_current_limit(max_mapped_addr - 4096);
 +
 +      max_pfn = PFN_DOWN(dram_end);
        max_low_pfn = max_pfn;
        dma32_phys_limit = min(4UL * SZ_1G, (unsigned long)PFN_PHYS(max_low_pfn));
 -      set_max_mapnr(max_low_pfn);
 +      set_max_mapnr(max_low_pfn - ARCH_PFN_OFFSET);
  
- #ifdef CONFIG_BLK_DEV_INITRD
-       setup_initrd();
- #endif /* CONFIG_BLK_DEV_INITRD */
+       reserve_initrd_mem();
        /*
-        * Avoid using early_init_fdt_reserve_self() since __pa() does
+        * If DTB is built in, no need to reserve its memblock.
+        * Otherwise, do reserve it but avoid using
+        * early_init_fdt_reserve_self() since __pa() does
         * not work for DTB pointers that are fixmap addresses
         */
-       memblock_reserve(dtb_early_pa, fdt_totalsize(dtb_early_va));
+       if (!IS_ENABLED(CONFIG_BUILTIN_DTB))
+               memblock_reserve(dtb_early_pa, fdt_totalsize(dtb_early_va));
  
        early_init_fdt_scan_reserved_mem();
        dma_contiguous_reserve(dma32_phys_limit);
        memblock_allow_resize();
-       memblock_dump_all();
  }
  
  #ifdef CONFIG_MMU
@@@ -226,8 -165,6 +177,6 @@@ pgd_t swapper_pg_dir[PTRS_PER_PGD] __pa
  pgd_t trampoline_pg_dir[PTRS_PER_PGD] __page_aligned_bss;
  pte_t fixmap_pte[PTRS_PER_PTE] __page_aligned_bss;
  
- #define MAX_EARLY_MAPPING_SIZE        SZ_128M
  pgd_t early_pg_dir[PTRS_PER_PGD] __initdata __aligned(PAGE_SIZE);
  
  void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot)
@@@ -302,13 -239,7 +251,7 @@@ static void __init create_pte_mapping(p
  
  pmd_t trampoline_pmd[PTRS_PER_PMD] __page_aligned_bss;
  pmd_t fixmap_pmd[PTRS_PER_PMD] __page_aligned_bss;
- #if MAX_EARLY_MAPPING_SIZE < PGDIR_SIZE
- #define NUM_EARLY_PMDS                1UL
- #else
- #define NUM_EARLY_PMDS                (1UL + MAX_EARLY_MAPPING_SIZE / PGDIR_SIZE)
- #endif
- pmd_t early_pmd[PTRS_PER_PMD * NUM_EARLY_PMDS] __initdata __aligned(PAGE_SIZE);
+ pmd_t early_pmd[PTRS_PER_PMD] __initdata __aligned(PAGE_SIZE);
  pmd_t early_dtb_pmd[PTRS_PER_PMD] __initdata __aligned(PAGE_SIZE);
  
  static pmd_t *__init get_pmd_virt_early(phys_addr_t pa)
@@@ -330,11 -261,9 +273,9 @@@ static pmd_t *get_pmd_virt_late(phys_ad
  
  static phys_addr_t __init alloc_pmd_early(uintptr_t va)
  {
-       uintptr_t pmd_num;
+       BUG_ON((va - PAGE_OFFSET) >> PGDIR_SHIFT);
  
-       pmd_num = (va - PAGE_OFFSET) >> PGDIR_SHIFT;
-       BUG_ON(pmd_num >= NUM_EARLY_PMDS);
-       return (uintptr_t)&early_pmd[pmd_num * PTRS_PER_PMD];
+       return (uintptr_t)early_pmd;
  }
  
  static phys_addr_t __init alloc_pmd_fixmap(uintptr_t va)
@@@ -452,7 -381,7 +393,7 @@@ asmlinkage void __init setup_vm(uintptr
        uintptr_t va, pa, end_va;
        uintptr_t load_pa = (uintptr_t)(&_start);
        uintptr_t load_sz = (uintptr_t)(&_end) - load_pa;
-       uintptr_t map_size = best_map_size(load_pa, MAX_EARLY_MAPPING_SIZE);
+       uintptr_t map_size;
  #ifndef __PAGETABLE_PMD_FOLDED
        pmd_t fix_bmap_spmd, fix_bmap_epmd;
  #endif
         * Enforce boot alignment requirements of RV32 and
         * RV64 by only allowing PMD or PGD mappings.
         */
-       BUG_ON(map_size == PAGE_SIZE);
+       map_size = PMD_SIZE;
  
        /* Sanity check alignment and size */
        BUG_ON((PAGE_OFFSET % PGDIR_SIZE) != 0);
        BUG_ON((load_pa % map_size) != 0);
-       BUG_ON(load_sz > MAX_EARLY_MAPPING_SIZE);
  
        pt_ops.alloc_pte = alloc_pte_early;
        pt_ops.get_pte_virt = get_pte_virt_early;
        /* Setup early PMD for DTB */
        create_pgd_mapping(early_pg_dir, DTB_EARLY_BASE_VA,
                           (uintptr_t)early_dtb_pmd, PGDIR_SIZE, PAGE_TABLE);
+ #ifndef CONFIG_BUILTIN_DTB
        /* Create two consecutive PMD mappings for FDT early scan */
        pa = dtb_pa & ~(PMD_SIZE - 1);
        create_pmd_mapping(early_dtb_pmd, DTB_EARLY_BASE_VA,
        create_pmd_mapping(early_dtb_pmd, DTB_EARLY_BASE_VA + PMD_SIZE,
                           pa + PMD_SIZE, PMD_SIZE, PAGE_KERNEL);
        dtb_early_va = (void *)DTB_EARLY_BASE_VA + (dtb_pa & (PMD_SIZE - 1));
+ #else /* CONFIG_BUILTIN_DTB */
+       dtb_early_va = __va(dtb_pa);
+ #endif /* CONFIG_BUILTIN_DTB */
  #else
+ #ifndef CONFIG_BUILTIN_DTB
        /* Create two consecutive PGD mappings for FDT early scan */
        pa = dtb_pa & ~(PGDIR_SIZE - 1);
        create_pgd_mapping(early_pg_dir, DTB_EARLY_BASE_VA,
        create_pgd_mapping(early_pg_dir, DTB_EARLY_BASE_VA + PGDIR_SIZE,
                           pa + PGDIR_SIZE, PGDIR_SIZE, PAGE_KERNEL);
        dtb_early_va = (void *)DTB_EARLY_BASE_VA + (dtb_pa & (PGDIR_SIZE - 1));
+ #else /* CONFIG_BUILTIN_DTB */
+       dtb_early_va = __va(dtb_pa);
+ #endif /* CONFIG_BUILTIN_DTB */
  #endif
        dtb_early_pa = dtb_pa;
  
@@@ -616,15 -552,7 +564,7 @@@ static void __init setup_vm_final(void
  #else
  asmlinkage void __init setup_vm(uintptr_t dtb_pa)
  {
- #ifdef CONFIG_BUILTIN_DTB
-       dtb_early_va = soc_lookup_builtin_dtb();
-       if (!dtb_early_va) {
-               /* Fallback to first available DTS */
-               dtb_early_va = (void *) __dtb_start;
-       }
- #else
        dtb_early_va = (void *)dtb_pa;
- #endif
        dtb_early_pa = dtb_pa;
  }
  
@@@ -665,9 -593,15 +605,15 @@@ void mark_rodata_ro(void
  void __init paging_init(void)
  {
        setup_vm_final();
-       sparse_init();
        setup_zero_page();
+ }
+ void __init misc_mem_init(void)
+ {
+       arch_numa_init();
+       sparse_init();
        zone_sizes_init();
+       memblock_dump_all();
  }
  
  #ifdef CONFIG_SPARSEMEM_VMEMMAP
index a8a2ffd9114aaa22c60661c7cd2d80023747cb2e,c676a4674342de9e823890027181a1a1d2cad6b2..3fc18f469efbc6f1e3b05f8fbba71bc9345315fa
@@@ -9,6 -9,19 +9,19 @@@
  #include <linux/pgtable.h>
  #include <asm/tlbflush.h>
  #include <asm/fixmap.h>
+ #include <asm/pgalloc.h>
+ static __init void *early_alloc(size_t size, int node)
+ {
+       void *ptr = memblock_alloc_try_nid(size, size,
+               __pa(MAX_DMA_ADDRESS), MEMBLOCK_ALLOC_ACCESSIBLE, node);
+       if (!ptr)
+               panic("%pS: Failed to allocate %zu bytes align=%zx nid=%d from=%llx\n",
+                       __func__, size, size, node, (u64)__pa(MAX_DMA_ADDRESS));
+       return ptr;
+ }
  
  extern pgd_t early_pg_dir[PTRS_PER_PGD];
  asmlinkage void __init kasan_early_init(void)
        local_flush_tlb_all();
  }
  
- static void __init populate(void *start, void *end)
+ static void kasan_populate_pte(pmd_t *pmd, unsigned long vaddr, unsigned long end)
+ {
+       phys_addr_t phys_addr;
+       pte_t *ptep, *base_pte;
+       if (pmd_none(*pmd))
+               base_pte = memblock_alloc(PTRS_PER_PTE * sizeof(pte_t), PAGE_SIZE);
+       else
+               base_pte = (pte_t *)pmd_page_vaddr(*pmd);
+       ptep = base_pte + pte_index(vaddr);
+       do {
+               if (pte_none(*ptep)) {
+                       phys_addr = memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE);
+                       set_pte(ptep, pfn_pte(PFN_DOWN(phys_addr), PAGE_KERNEL));
+               }
+       } while (ptep++, vaddr += PAGE_SIZE, vaddr != end);
+       set_pmd(pmd, pfn_pmd(PFN_DOWN(__pa(base_pte)), PAGE_TABLE));
+ }
+ static void kasan_populate_pmd(pgd_t *pgd, unsigned long vaddr, unsigned long end)
+ {
+       phys_addr_t phys_addr;
+       pmd_t *pmdp, *base_pmd;
+       unsigned long next;
+       base_pmd = (pmd_t *)pgd_page_vaddr(*pgd);
+       if (base_pmd == lm_alias(kasan_early_shadow_pmd))
+               base_pmd = memblock_alloc(PTRS_PER_PMD * sizeof(pmd_t), PAGE_SIZE);
+       pmdp = base_pmd + pmd_index(vaddr);
+       do {
+               next = pmd_addr_end(vaddr, end);
+               if (pmd_none(*pmdp) && IS_ALIGNED(vaddr, PMD_SIZE) && (next - vaddr) >= PMD_SIZE) {
+                       phys_addr = memblock_phys_alloc(PMD_SIZE, PMD_SIZE);
+                       if (phys_addr) {
+                               set_pmd(pmdp, pfn_pmd(PFN_DOWN(phys_addr), PAGE_KERNEL));
+                               continue;
+                       }
+               }
+               kasan_populate_pte(pmdp, vaddr, next);
+       } while (pmdp++, vaddr = next, vaddr != end);
+       /*
+        * Wait for the whole PGD to be populated before setting the PGD in
+        * the page table, otherwise, if we did set the PGD before populating
+        * it entirely, memblock could allocate a page at a physical address
+        * where KASAN is not populated yet and then we'd get a page fault.
+        */
+       set_pgd(pgd, pfn_pgd(PFN_DOWN(__pa(base_pmd)), PAGE_TABLE));
+ }
+ static void kasan_populate_pgd(unsigned long vaddr, unsigned long end)
+ {
+       phys_addr_t phys_addr;
+       pgd_t *pgdp = pgd_offset_k(vaddr);
+       unsigned long next;
+       do {
+               next = pgd_addr_end(vaddr, end);
+               /*
+                * pgdp can't be none since kasan_early_init initialized all KASAN
+                * shadow region with kasan_early_shadow_pmd: if this is stillthe case,
+                * that means we can try to allocate a hugepage as a replacement.
+                */
+               if (pgd_page_vaddr(*pgdp) == (unsigned long)lm_alias(kasan_early_shadow_pmd) &&
+                   IS_ALIGNED(vaddr, PGDIR_SIZE) && (next - vaddr) >= PGDIR_SIZE) {
+                       phys_addr = memblock_phys_alloc(PGDIR_SIZE, PGDIR_SIZE);
+                       if (phys_addr) {
+                               set_pgd(pgdp, pfn_pgd(PFN_DOWN(phys_addr), PAGE_KERNEL));
+                               continue;
+                       }
+               }
+               kasan_populate_pmd(pgdp, vaddr, next);
+       } while (pgdp++, vaddr = next, vaddr != end);
+ }
+ static void __init kasan_populate(void *start, void *end)
  {
-       unsigned long i, offset;
        unsigned long vaddr = (unsigned long)start & PAGE_MASK;
        unsigned long vend = PAGE_ALIGN((unsigned long)end);
-       unsigned long n_pages = (vend - vaddr) / PAGE_SIZE;
-       unsigned long n_ptes =
-           ((n_pages + PTRS_PER_PTE) & -PTRS_PER_PTE) / PTRS_PER_PTE;
-       unsigned long n_pmds =
-           ((n_ptes + PTRS_PER_PMD) & -PTRS_PER_PMD) / PTRS_PER_PMD;
-       pte_t *pte =
-           memblock_alloc(n_ptes * PTRS_PER_PTE * sizeof(pte_t), PAGE_SIZE);
-       pmd_t *pmd =
-           memblock_alloc(n_pmds * PTRS_PER_PMD * sizeof(pmd_t), PAGE_SIZE);
-       pgd_t *pgd = pgd_offset_k(vaddr);
-       for (i = 0; i < n_pages; i++) {
-               phys_addr_t phys = memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE);
-               set_pte(&pte[i], pfn_pte(PHYS_PFN(phys), PAGE_KERNEL));
-       }
-       for (i = 0, offset = 0; i < n_ptes; i++, offset += PTRS_PER_PTE)
-               set_pmd(&pmd[i],
-                       pfn_pmd(PFN_DOWN(__pa(&pte[offset])),
-                               __pgprot(_PAGE_TABLE)));
  
-       for (i = 0, offset = 0; i < n_pmds; i++, offset += PTRS_PER_PMD)
-               set_pgd(&pgd[i],
-                       pfn_pgd(PFN_DOWN(__pa(&pmd[offset])),
-                               __pgprot(_PAGE_TABLE)));
+       kasan_populate_pgd(vaddr, vend);
  
        local_flush_tlb_all();
-       memset(start, 0, end - start);
+       memset(start, KASAN_SHADOW_INIT, end - start);
+ }
+ void __init kasan_shallow_populate(void *start, void *end)
+ {
+       unsigned long vaddr = (unsigned long)start & PAGE_MASK;
+       unsigned long vend = PAGE_ALIGN((unsigned long)end);
+       unsigned long pfn;
+       int index;
+       void *p;
+       pud_t *pud_dir, *pud_k;
+       pgd_t *pgd_dir, *pgd_k;
+       p4d_t *p4d_dir, *p4d_k;
+       while (vaddr < vend) {
+               index = pgd_index(vaddr);
+               pfn = csr_read(CSR_SATP) & SATP_PPN;
+               pgd_dir = (pgd_t *)pfn_to_virt(pfn) + index;
+               pgd_k = init_mm.pgd + index;
+               pgd_dir = pgd_offset_k(vaddr);
+               set_pgd(pgd_dir, *pgd_k);
+               p4d_dir = p4d_offset(pgd_dir, vaddr);
+               p4d_k  = p4d_offset(pgd_k, vaddr);
+               vaddr = (vaddr + PUD_SIZE) & PUD_MASK;
+               pud_dir = pud_offset(p4d_dir, vaddr);
+               pud_k = pud_offset(p4d_k, vaddr);
+               if (pud_present(*pud_dir)) {
+                       p = early_alloc(PAGE_SIZE, NUMA_NO_NODE);
+                       pud_populate(&init_mm, pud_dir, p);
+               }
+               vaddr += PAGE_SIZE;
+       }
  }
  
  void __init kasan_init(void)
  
        kasan_populate_early_shadow((void *)KASAN_SHADOW_START,
                                    (void *)kasan_mem_to_shadow((void *)
-                                                               VMALLOC_END));
+                                                               VMEMMAP_END));
+       if (IS_ENABLED(CONFIG_KASAN_VMALLOC))
+               kasan_shallow_populate(
+                       (void *)kasan_mem_to_shadow((void *)VMALLOC_START),
+                       (void *)kasan_mem_to_shadow((void *)VMALLOC_END));
+       else
+               kasan_populate_early_shadow(
+                       (void *)kasan_mem_to_shadow((void *)VMALLOC_START),
+                       (void *)kasan_mem_to_shadow((void *)VMALLOC_END));
  
        for_each_mem_range(i, &_start, &_end) {
 -              void *start = (void *)_start;
 -              void *end = (void *)_end;
 +              void *start = (void *)__va(_start);
 +              void *end = (void *)__va(_end);
  
                if (start >= end)
                        break;
  
-               populate(kasan_mem_to_shadow(start), kasan_mem_to_shadow(end));
+               kasan_populate(kasan_mem_to_shadow(start), kasan_mem_to_shadow(end));
        };
  
        for (i = 0; i < PTRS_PER_PTE; i++)
                               __pgprot(_PAGE_PRESENT | _PAGE_READ |
                                        _PAGE_ACCESSED)));
  
-       memset(kasan_early_shadow_page, 0, PAGE_SIZE);
+       memset(kasan_early_shadow_page, KASAN_SHADOW_INIT, PAGE_SIZE);
        init_task.kasan_depth = 0;
  }
diff --combined drivers/base/Kconfig
index 324aa03fed3cf597249a107e48dfe54b6f77f60a,dbd88e2be88aeb321b7e2b23e880ea822b92aa2f..ffcbe2bc460eb5effddb4ce546ba0d375e313e08
@@@ -161,7 -161,7 +161,7 @@@ config HMEM_REPORTIN
        default n
        depends on NUMA
        help
 -        Enable reporting for heterogenous memory access attributes under
 +        Enable reporting for heterogeneous memory access attributes under
          their non-uniform memory nodes.
  
  source "drivers/base/test/Kconfig"
@@@ -213,4 -213,10 +213,10 @@@ config GENERIC_ARCH_TOPOLOG
          appropriate scaling, sysfs interface for reading capacity values at
          runtime.
  
+ config GENERIC_ARCH_NUMA
+       bool
+       help
+         Enable support for generic NUMA implementation. Currently, RISC-V
+         and ARM64 use it.
  endmenu
diff --combined drivers/clk/Kconfig
index 4b47170dbe2eecb046e60fbda6ab875a5f105b90,78f6288d52267c981c9e0a123fb9a9882492a5a9..a588d56502d40a07ae65654752161fbf58dc33ab
@@@ -247,8 -247,7 +247,8 @@@ config CLK_TWL604
  
  config COMMON_CLK_AXI_CLKGEN
        tristate "AXI clkgen driver"
 -      depends on ARCH_ZYNQ || MICROBLAZE || COMPILE_TEST
 +      depends on HAS_IOMEM || COMPILE_TEST
 +      depends on OF
        help
          Support for the Analog Devices axi-clkgen pcore clock generator for Xilinx
          FPGAs. It is commonly used in Analog Devices' reference designs.
@@@ -369,6 -368,13 +369,13 @@@ config COMMON_CLK_FIXED_MMI
        help
          Support for Memory Mapped IO Fixed clocks
  
+ config COMMON_CLK_K210
+       bool "Clock driver for the Canaan Kendryte K210 SoC"
+       depends on OF && RISCV && SOC_CANAAN
+       default SOC_CANAAN
+       help
+         Support for the Canaan Kendryte K210 RISC-V SoC clocks.
  source "drivers/clk/actions/Kconfig"
  source "drivers/clk/analogbits/Kconfig"
  source "drivers/clk/baikal-t1/Kconfig"
@@@ -380,7 -386,6 +387,7 @@@ source "drivers/clk/ingenic/Kconfig
  source "drivers/clk/keystone/Kconfig"
  source "drivers/clk/mediatek/Kconfig"
  source "drivers/clk/meson/Kconfig"
 +source "drivers/clk/mstar/Kconfig"
  source "drivers/clk/mvebu/Kconfig"
  source "drivers/clk/qcom/Kconfig"
  source "drivers/clk/renesas/Kconfig"
@@@ -394,7 -399,6 +401,7 @@@ source "drivers/clk/tegra/Kconfig
  source "drivers/clk/ti/Kconfig"
  source "drivers/clk/uniphier/Kconfig"
  source "drivers/clk/x86/Kconfig"
 +source "drivers/clk/xilinx/Kconfig"
  source "drivers/clk/zynqmp/Kconfig"
  
  endif
diff --combined drivers/clk/Makefile
index 71c1fa24b5f0380d6f9d70cad55d47defade2042,5f8f9f135df5c4ca012de09aac9b54cf5383c86e..b22ae4f81e0b33c375e1c28f9caa8247b662512a
@@@ -27,6 -27,7 +27,6 @@@ obj-$(CONFIG_COMMON_CLK_CDCE706)      += clk
  obj-$(CONFIG_COMMON_CLK_CDCE925)      += clk-cdce925.o
  obj-$(CONFIG_ARCH_CLPS711X)           += clk-clps711x.o
  obj-$(CONFIG_COMMON_CLK_CS2000_CP)    += clk-cs2000-cp.o
 -obj-$(CONFIG_ARCH_EFM32)              += clk-efm32gg.o
  obj-$(CONFIG_ARCH_SPARX5)             += clk-sparx5.o
  obj-$(CONFIG_COMMON_CLK_FIXED_MMIO)   += clk-fixed-mmio.o
  obj-$(CONFIG_COMMON_CLK_FSL_FLEXSPI)  += clk-fsl-flexspi.o
@@@ -36,6 -37,7 +36,7 @@@ obj-$(CONFIG_COMMON_CLK_ASPEED)               += clk
  obj-$(CONFIG_MACH_ASPEED_G6)          += clk-ast2600.o
  obj-$(CONFIG_ARCH_HIGHBANK)           += clk-highbank.o
  obj-$(CONFIG_CLK_HSDK)                        += clk-hsdk-pll.o
+ obj-$(CONFIG_COMMON_CLK_K210)         += clk-k210.o
  obj-$(CONFIG_COMMON_CLK_LOCHNAGAR)    += clk-lochnagar.o
  obj-$(CONFIG_COMMON_CLK_MAX77686)     += clk-max77686.o
  obj-$(CONFIG_COMMON_CLK_MAX9485)      += clk-max9485.o
@@@ -62,7 -64,9 +63,7 @@@ obj-$(CONFIG_COMMON_CLK_SI570)                += clk-
  obj-$(CONFIG_COMMON_CLK_STM32F)               += clk-stm32f4.o
  obj-$(CONFIG_COMMON_CLK_STM32H7)      += clk-stm32h7.o
  obj-$(CONFIG_COMMON_CLK_STM32MP157)   += clk-stm32mp1.o
 -obj-$(CONFIG_ARCH_TANGO)              += clk-tango4.o
  obj-$(CONFIG_CLK_TWL6040)             += clk-twl6040.o
 -obj-$(CONFIG_ARCH_U300)                       += clk-u300.o
  obj-$(CONFIG_ARCH_VT8500)             += clk-vt8500.o
  obj-$(CONFIG_COMMON_CLK_VC5)          += clk-versaclock5.o
  obj-$(CONFIG_COMMON_CLK_WM831X)               += clk-wm831x.o
@@@ -92,7 -96,6 +93,7 @@@ obj-$(CONFIG_MACH_PIC32)              += microchip
  ifeq ($(CONFIG_COMMON_CLK), y)
  obj-$(CONFIG_ARCH_MMP)                        += mmp/
  endif
 +obj-y                                 += mstar/
  obj-y                                 += mvebu/
  obj-$(CONFIG_ARCH_MXS)                        += mxs/
  obj-$(CONFIG_COMMON_CLK_NXP)          += nxp/
@@@ -103,6 -106,7 +104,6 @@@ obj-y                                      += renesas
  obj-$(CONFIG_ARCH_ROCKCHIP)           += rockchip/
  obj-$(CONFIG_COMMON_CLK_SAMSUNG)      += samsung/
  obj-$(CONFIG_CLK_SIFIVE)              += sifive/
 -obj-$(CONFIG_ARCH_SIRF)                       += sirf/
  obj-$(CONFIG_ARCH_SOCFPGA)            += socfpga/
  obj-$(CONFIG_ARCH_AGILEX)             += socfpga/
  obj-$(CONFIG_ARCH_STRATIX10)          += socfpga/
@@@ -119,6 -123,6 +120,6 @@@ obj-y                                      += versatile
  ifeq ($(CONFIG_COMMON_CLK), y)
  obj-$(CONFIG_X86)                     += x86/
  endif
 -obj-$(CONFIG_ARCH_ZX)                 += zte/
 +obj-y                                 += xilinx/
  obj-$(CONFIG_ARCH_ZYNQ)                       += zynq/
  obj-$(CONFIG_COMMON_CLK_ZYNQMP)         += zynqmp/
diff --combined drivers/pinctrl/Kconfig
index 03c62e1cb395fc0c22a1f668c5f5aedea914d1f8,cd437e3cc2554d28dfbca87e0188126f56320102..b7675cce0027b3f9bc5713f662049bc1511170ca
@@@ -226,6 -226,14 +226,6 @@@ config PINCTRL_SINGL
        help
          This selects the device tree based generic pinctrl driver.
  
 -config PINCTRL_SIRF
 -      bool "CSR SiRFprimaII pin controller driver"
 -      depends on ARCH_SIRF
 -      select PINMUX
 -      select PINCONF
 -      select GENERIC_PINCONF
 -      select GPIOLIB_IRQCHIP
 -
  config PINCTRL_SX150X
        bool "Semtech SX150x I2C GPIO expander pinctrl driver"
        depends on I2C=y
@@@ -271,6 -279,22 +271,6 @@@ config PINCTRL_STMF
          and configuring push-pull, open-drain, and can also be used as
          interrupt-controller.
  
 -config PINCTRL_U300
 -      bool "U300 pin controller driver"
 -      depends on ARCH_U300
 -      select PINMUX
 -      select GENERIC_PINCONF
 -
 -config PINCTRL_COH901
 -      bool "ST-Ericsson U300 COH 901 335/571 GPIO"
 -      depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
 -      select GPIOLIB_IRQCHIP
 -      help
 -        Say yes here to support GPIO interface on ST-Ericsson U300.
 -        The names of the two IP block variants supported are
 -        COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
 -        ports of 8 GPIO pins each.
 -
  config PINCTRL_MAX77620
        tristate "MAX77620/MAX20024 Pincontrol support"
        depends on MFD_MAX77620 && OF
@@@ -370,6 -394,19 +370,19 @@@ config PINCTRL_MICROCHIP_SGPI
          connect control signals from SFP modules and to act as an
          LED controller.
  
+ config PINCTRL_K210
+       bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
+       depends on RISCV && SOC_CANAAN && OF
+       select GENERIC_PINMUX_FUNCTIONS
+       select GENERIC_PINCONF
+       select GPIOLIB
+       select OF_GPIO
+       select REGMAP_MMIO
+       default SOC_CANAAN
+       help
+         Add support for the Canaan Kendryte K210 RISC-V SOC Field
+         Programmable IO Array (FPIOA) controller.
  source "drivers/pinctrl/actions/Kconfig"
  source "drivers/pinctrl/aspeed/Kconfig"
  source "drivers/pinctrl/bcm/Kconfig"
@@@ -393,6 -430,7 +406,6 @@@ source "drivers/pinctrl/ti/Kconfig
  source "drivers/pinctrl/uniphier/Kconfig"
  source "drivers/pinctrl/vt8500/Kconfig"
  source "drivers/pinctrl/mediatek/Kconfig"
 -source "drivers/pinctrl/zte/Kconfig"
  source "drivers/pinctrl/meson/Kconfig"
  source "drivers/pinctrl/cirrus/Kconfig"
  source "drivers/pinctrl/visconti/Kconfig"
diff --combined drivers/pinctrl/Makefile
index efc96f25c8db4a8e6ce6dc883ee40dcbeb88b3da,152c8fe51726e4fbe51e222e48be448fc9c5d0c7..8bf459c32a7631002f8943ab566f0f4928dd3764
@@@ -31,8 -31,11 +31,8 @@@ obj-$(CONFIG_PINCTRL_PIC32)  += pinctrl-
  obj-$(CONFIG_PINCTRL_PISTACHIO)       += pinctrl-pistachio.o
  obj-$(CONFIG_PINCTRL_ROCKCHIP)        += pinctrl-rockchip.o
  obj-$(CONFIG_PINCTRL_SINGLE)  += pinctrl-single.o
 -obj-$(CONFIG_PINCTRL_SIRF)    += sirf/
  obj-$(CONFIG_PINCTRL_SX150X)  += pinctrl-sx150x.o
  obj-$(CONFIG_ARCH_TEGRA)      += tegra/
 -obj-$(CONFIG_PINCTRL_U300)    += pinctrl-u300.o
 -obj-$(CONFIG_PINCTRL_COH901)  += pinctrl-coh901.o
  obj-$(CONFIG_PINCTRL_XWAY)    += pinctrl-xway.o
  obj-$(CONFIG_PINCTRL_LANTIQ)  += pinctrl-lantiq.o
  obj-$(CONFIG_PINCTRL_LPC18XX) += pinctrl-lpc18xx.o
@@@ -45,6 -48,7 +45,7 @@@ obj-$(CONFIG_PINCTRL_RK805)   += pinctrl-
  obj-$(CONFIG_PINCTRL_OCELOT)  += pinctrl-ocelot.o
  obj-$(CONFIG_PINCTRL_MICROCHIP_SGPIO) += pinctrl-microchip-sgpio.o
  obj-$(CONFIG_PINCTRL_EQUILIBRIUM)   += pinctrl-equilibrium.o
+ obj-$(CONFIG_PINCTRL_K210)    += pinctrl-k210.o
  
  obj-y                         += actions/
  obj-$(CONFIG_ARCH_ASPEED)     += aspeed/
@@@ -68,5 -72,6 +69,5 @@@ obj-y                         += ti
  obj-$(CONFIG_PINCTRL_UNIPHIER)        += uniphier/
  obj-$(CONFIG_ARCH_VT8500)     += vt8500/
  obj-y                         += mediatek/
 -obj-$(CONFIG_PINCTRL_ZX)      += zte/
  obj-y                         += cirrus/
  obj-$(CONFIG_PINCTRL_VISCONTI)        += visconti/
diff --combined drivers/reset/Kconfig
index 8ac5627564f08accf45e4cffdf2ce45652218cf0,3db04991a16b202a9cc0cbb7a91fc543e27eebcd..4171c6f763858a034b2c35256953e14f237e944b
@@@ -89,6 -89,16 +89,16 @@@ config RESET_INTEL_G
          Say Y to control the reset signals provided by reset controller.
          Otherwise, say N.
  
+ config RESET_K210
+       bool "Reset controller driver for Canaan Kendryte K210 SoC"
+       depends on (SOC_CANAAN || COMPILE_TEST) && OF
+       select MFD_SYSCON
+       default SOC_CANAAN
+       help
+         Support for the Canaan Kendryte K210 RISC-V SoC reset controller.
+         Say Y if you want to control reset signals provided by this
+         controller.
  config RESET_LANTIQ
        bool "Lantiq XWAY Reset Driver" if COMPILE_TEST
        default SOC_TYPE_XWAY
@@@ -173,7 -183,7 +183,7 @@@ config RESET_SCM
  
  config RESET_SIMPLE
        bool "Simple Reset Controller Driver" if COMPILE_TEST
 -      default ARCH_AGILEX || ARCH_ASPEED || ARCH_BITMAIN || ARCH_REALTEK || ARCH_STM32 || ARCH_STRATIX10 || ARCH_SUNXI || ARCH_ZX || ARC
 +      default ARCH_AGILEX || ARCH_ASPEED || ARCH_BCM4908 || ARCH_BITMAIN || ARCH_REALTEK || ARCH_STM32 || ARCH_STRATIX10 || ARCH_SUNXI || ARC
        help
          This enables a simple reset controller driver for reset lines that
          that can be asserted and deasserted by toggling bits in a contiguous,
diff --combined drivers/soc/Kconfig
index f357c6c659d2c59def4a9964740b9e99ca02fa33,c0143651f4a94d70b69acfa844809ea78842aebb..e8a30c4c5aec5a4e5623a4e5dd155704c4d21c59
@@@ -6,6 -6,7 +6,7 @@@ source "drivers/soc/amlogic/Kconfig
  source "drivers/soc/aspeed/Kconfig"
  source "drivers/soc/atmel/Kconfig"
  source "drivers/soc/bcm/Kconfig"
+ source "drivers/soc/canaan/Kconfig"
  source "drivers/soc/fsl/Kconfig"
  source "drivers/soc/imx/Kconfig"
  source "drivers/soc/ixp4xx/Kconfig"
@@@ -22,6 -23,6 +23,5 @@@ source "drivers/soc/ti/Kconfig
  source "drivers/soc/ux500/Kconfig"
  source "drivers/soc/versatile/Kconfig"
  source "drivers/soc/xilinx/Kconfig"
- source "drivers/soc/kendryte/Kconfig"
 -source "drivers/soc/zte/Kconfig"
  
  endmenu
diff --combined drivers/soc/Makefile
index 9bceb12b291d3ebb0dad0113c016aea936655b95,34b23645be14f656364d5ca4e92fe54f9e42030b..f678e4d9e58505a384bf2bb68851f81226912c45
@@@ -7,6 -7,7 +7,7 @@@ obj-$(CONFIG_ARCH_ACTIONS)       += actions
  obj-y                         += aspeed/
  obj-$(CONFIG_ARCH_AT91)               += atmel/
  obj-y                         += bcm/
+ obj-$(CONFIG_SOC_CANAAN)      += canaan/
  obj-$(CONFIG_ARCH_DOVE)               += dove/
  obj-$(CONFIG_MACH_DOVE)               += dove/
  obj-y                         += fsl/
@@@ -28,4 -29,4 +29,3 @@@ obj-y                         += ti
  obj-$(CONFIG_ARCH_U8500)      += ux500/
  obj-$(CONFIG_PLAT_VERSATILE)  += versatile/
  obj-y                         += xilinx/
- obj-$(CONFIG_SOC_KENDRYTE)    += kendryte/
 -obj-$(CONFIG_ARCH_ZX)         += zte/
diff --combined init/initramfs.c
index 5fa84711127a851da8b1b02c92314dc666b30913,f75c89e9d602d8be9bc87b4ca4997339ccf521c8..d677e8e717f1c3499a8d63163cb8c1a0c37b033a
@@@ -11,7 -11,6 +11,7 @@@
  #include <linux/utime.h>
  #include <linux/file.h>
  #include <linux/memblock.h>
 +#include <linux/mm.h>
  #include <linux/namei.h>
  #include <linux/init_syscalls.h>
  
@@@ -46,16 -45,6 +46,16 @@@ static void __init error(char *x
                message = x;
  }
  
 +static void panic_show_mem(const char *fmt, ...)
 +{
 +      va_list args;
 +
 +      show_mem(0, NULL);
 +      va_start(args, fmt);
 +      panic(fmt, args);
 +      va_end(args);
 +}
 +
  /* link hash */
  
  #define N_ALIGN(len) ((((len) + 1) & ~3) + 2)
@@@ -91,7 -80,7 +91,7 @@@ static char __init *find_link(int major
        }
        q = kmalloc(sizeof(struct hash), GFP_KERNEL);
        if (!q)
 -              panic("can't allocate link hash entry");
 +              panic_show_mem("can't allocate link hash entry");
        q->major = major;
        q->minor = minor;
        q->ino = ino;
@@@ -136,7 -125,7 +136,7 @@@ static void __init dir_add(const char *
  {
        struct dir_entry *de = kmalloc(sizeof(struct dir_entry), GFP_KERNEL);
        if (!de)
 -              panic("can't allocate dir_entry buffer");
 +              panic_show_mem("can't allocate dir_entry buffer");
        INIT_LIST_HEAD(&de->list);
        de->name = kstrdup(name, GFP_KERNEL);
        de->mtime = mtime;
@@@ -471,7 -460,7 +471,7 @@@ static char * __init unpack_to_rootfs(c
        name_buf = kmalloc(N_ALIGN(PATH_MAX), GFP_KERNEL);
  
        if (!header_buf || !symlink_buf || !name_buf)
 -              panic("can't allocate buffers");
 +              panic_show_mem("can't allocate buffers");
  
        state = Start;
        this_header = 0;
@@@ -546,6 -535,51 +546,51 @@@ extern unsigned long __initramfs_size
  #include <linux/initrd.h>
  #include <linux/kexec.h>
  
+ void __init reserve_initrd_mem(void)
+ {
+       phys_addr_t start;
+       unsigned long size;
+       /* Ignore the virtul address computed during device tree parsing */
+       initrd_start = initrd_end = 0;
+       if (!phys_initrd_size)
+               return;
+       /*
+        * Round the memory region to page boundaries as per free_initrd_mem()
+        * This allows us to detect whether the pages overlapping the initrd
+        * are in use, but more importantly, reserves the entire set of pages
+        * as we don't want these pages allocated for other purposes.
+        */
+       start = round_down(phys_initrd_start, PAGE_SIZE);
+       size = phys_initrd_size + (phys_initrd_start - start);
+       size = round_up(size, PAGE_SIZE);
+       if (!memblock_is_region_memory(start, size)) {
+               pr_err("INITRD: 0x%08llx+0x%08lx is not a memory region",
+                      (u64)start, size);
+               goto disable;
+       }
+       if (memblock_is_region_reserved(start, size)) {
+               pr_err("INITRD: 0x%08llx+0x%08lx overlaps in-use memory region\n",
+                      (u64)start, size);
+               goto disable;
+       }
+       memblock_reserve(start, size);
+       /* Now convert initrd to virtual addresses */
+       initrd_start = (unsigned long)__va(phys_initrd_start);
+       initrd_end = initrd_start + phys_initrd_size;
+       initrd_below_start_ok = 1;
+       return;
+ disable:
+       pr_cont(" - disabling initrd\n");
+       initrd_start = 0;
+       initrd_end = 0;
+ }
  void __weak __init free_initrd_mem(unsigned long start, unsigned long end)
  {
  #ifdef CONFIG_ARCH_KEEP_MEMBLOCK
@@@ -618,7 -652,7 +663,7 @@@ static int __init populate_rootfs(void
        /* Load the built in initramfs */
        char *err = unpack_to_rootfs(__initramfs_start, __initramfs_size);
        if (err)
 -              panic("%s", err); /* Failed to decompress INTERNAL initramfs */
 +              panic_show_mem("%s", err); /* Failed to decompress INTERNAL initramfs */
  
        if (!initrd_start || IS_ENABLED(CONFIG_INITRAMFS_FORCE))
                goto done;