]> Git Repo - linux.git/commitdiff
Merge tag 'irq-core-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <[email protected]>
Mon, 22 Jul 2024 20:52:05 +0000 (13:52 -0700)
committerLinus Torvalds <[email protected]>
Mon, 22 Jul 2024 20:52:05 +0000 (13:52 -0700)
Pull interrupt subsystem updates from Thomas Gleixner:
 "Core:

   - Provide a new mechanism to create interrupt domains. The existing
     interfaces have already too many parameters and it's a pain to
     expand any of this for new required functionality.

     The new function takes a pointer to a data structure as argument.
     The data structure combines all existing parameters and allows for
     easy extension.

     The first extension for this is to handle the instantiation of
     generic interrupt chips at the core level and to allow drivers to
     provide extra init/exit callbacks.

     This is necessary to do the full interrupt chip initialization
     before the new domain is published, so that concurrent usage sites
     won't see a half initialized interrupt domain. Similar problems
     exist on teardown.

     This has turned out to be a real problem due to the deferred and
     parallel probing which was added in recent years.

     Handling this at the core level allows to remove quite some accrued
     boilerplate code in existing drivers and avoids horrible
     workarounds at the driver level.

   - The usual small improvements all over the place

  Drivers:

   - Add support for LAN966x OIC and RZ/Five SoC

   - Split the STM ExtI driver into a microcontroller and a SMP version
     to allow building the latter as a module for multi-platform
     kernels

   - Enable MSI support for Armada 370XP on platforms which do not
     support IPIs

   - The usual small fixes and enhancements all over the place"

* tag 'irq-core-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (59 commits)
  irqdomain: Fix the kernel-doc and plug it into Documentation
  genirq: Set IRQF_COND_ONESHOT in request_irq()
  irqchip/imx-irqsteer: Handle runtime power management correctly
  irqchip/gic-v3: Pass #redistributor-regions to gic_of_setup_kvm_info()
  irqchip/bcm2835: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND
  irqchip/gic-v4: Make sure a VPE is locked when VMAPP is issued
  irqchip/gic-v4: Substitute vmovp_lock for a per-VM lock
  irqchip/gic-v4: Always configure affinity on VPE activation
  Revert "irqchip/dw-apb-ictl: Support building as module"
  Revert "Loongarch: Support loongarch avec"
  arm64: Kconfig: Allow build irq-stm32mp-exti driver as module
  ARM: stm32: Allow build irq-stm32mp-exti driver as module
  irqchip/stm32mp-exti: Allow building as module
  irqchip/stm32mp-exti: Rename internal symbols
  irqchip/stm32-exti: Split MCU and MPU code
  arm64: Kconfig: Select STM32MP_EXTI on STM32 platforms
  ARM: stm32: Use different EXTI driver on ARMv7m and ARMv7a
  irqchip/stm32-exti: Add CONFIG_STM32MP_EXTI
  irqchip/dw-apb-ictl: Support building as module
  irqchip/riscv-aplic: Simplify the initialization code
  ...

1  2 
Documentation/core-api/genericirq.rst
MAINTAINERS
arch/arm64/Kconfig.platforms
arch/um/drivers/virt-pci.c
drivers/acpi/processor_core.c
drivers/irqchip/irq-gic-v3-its.c
drivers/irqchip/irq-gic-v3.c
drivers/irqchip/irq-riscv-intc.c
include/linux/acpi.h
include/linux/interrupt.h

index 582bde9bf5a92b1068d53e4d9ee87cb1490f5d47,7a27663f309fa6f8969f7f72eef1c386bd6cba9c..25f94dfd66fad42ee07e02c9f15f6c2e9cb4189a
@@@ -210,7 -210,7 +210,7 @@@ implemented (simplified excerpt):
          }
      }
  
 -    noop(struct irq_data *data))
 +    noop(struct irq_data *data)
      {
      }
  
@@@ -410,6 -410,8 +410,8 @@@ which are used in the generic IRQ layer
  .. kernel-doc:: include/linux/interrupt.h
     :internal:
  
+ .. kernel-doc:: include/linux/irqdomain.h
  Public Functions Provided
  =========================
  
diff --combined MAINTAINERS
index a0baccca11de65913e7ff9d04a82fa3f15dce28e,c47d8b9114b8092c1f12e6a215aad30dd67c8195..5579dac9aa641ae3ebb225c0fe3c7611e944c701
@@@ -392,7 -392,6 +392,7 @@@ ACPI WMI DRIVE
  M:    Armin Wolf <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-wmi
  F:    Documentation/driver-api/wmi.rst
  F:    Documentation/wmi/
  F:    drivers/platform/x86/wmi.c
@@@ -440,16 -439,6 +440,16 @@@ W:       http://wiki.analog.com/AD714
  W:    https://ez.analog.com/linux-software-drivers
  F:    drivers/input/misc/ad714x.c
  
 +AD738X ADC DRIVER (AD7380/1/2/4)
 +M:    Michael Hennerich <[email protected]>
 +M:    Nuno Sá <[email protected]>
 +R:    David Lechner <[email protected]>
 +S:    Supported
 +W:    https://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad738x
 +W:    https://ez.analog.com/linux-software-drivers
 +F:    Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml
 +F:    drivers/iio/adc/ad7380.c
 +
  AD7877 TOUCHSCREEN DRIVER
  M:    Michael Hennerich <[email protected]>
  S:    Supported
@@@ -693,15 -682,6 +693,15 @@@ S:       Supporte
  F:    fs/aio.c
  F:    include/linux/*aio*.h
  
 +AIROHA ETHERNET DRIVER
 +M:    Lorenzo Bianconi <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/airoha,en7581-eth.yaml
 +F:    drivers/net/ethernet/mediatek/airoha_eth.c
 +
  AIROHA SPI SNFI DRIVER
  M:    Lorenzo Bianconi <[email protected]>
  M:    Ray Liu <[email protected]>
@@@ -866,6 -846,12 +866,6 @@@ ALPS PS/2 TOUCHPAD DRIVE
  R:    Pali Rohár <[email protected]>
  F:    drivers/input/mouse/alps.*
  
 -ALTERA I2C CONTROLLER DRIVER
 -M:    Thor Thayer <[email protected]>
 -S:    Maintained
 -F:    Documentation/devicetree/bindings/i2c/i2c-altera.txt
 -F:    drivers/i2c/busses/i2c-altera.c
 -
  ALTERA MAILBOX DRIVER
  M:    Mun Yew Tham <[email protected]>
  S:    Maintained
@@@ -885,6 -871,21 +885,6 @@@ L:        [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-altera.c
  
 -ALTERA SYSTEM MANAGER DRIVER
 -M:    Thor Thayer <[email protected]>
 -S:    Maintained
 -F:    drivers/mfd/altera-sysmgr.c
 -F:    include/linux/mfd/altera-sysmgr.h
 -
 -ALTERA SYSTEM RESOURCE DRIVER FOR ARRIA10 DEVKIT
 -M:    Thor Thayer <[email protected]>
 -S:    Maintained
 -F:    drivers/gpio/gpio-altera-a10sr.c
 -F:    drivers/mfd/altera-a10sr.c
 -F:    drivers/reset/reset-a10sr.c
 -F:    include/dt-bindings/reset/altr,rst-mgr-a10sr.h
 -F:    include/linux/mfd/altera-a10sr.h
 -
  ALTERA TRIPLE SPEED ETHERNET DRIVER
  M:    Joyce Ooi <[email protected]>
  L:    [email protected]
@@@ -990,12 -991,6 +990,12 @@@ F:       include/uapi/linux/psp-dbc.
  F:    tools/crypto/ccp/*.c
  F:    tools/crypto/ccp/*.py
  
 +AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER - HSTI SUPPORT
 +M:    Mario Limonciello <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/crypto/ccp/hsti.*
 +
  AMD DISPLAY CORE
  M:    Harry Wentland <[email protected]>
  M:    Leo Li <[email protected]>
@@@ -1049,7 -1044,7 +1049,7 @@@ M:      Joerg Roedel <[email protected]
  R:    Suravee Suthikulpanit <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git
  F:    drivers/iommu/amd/
  F:    include/linux/amd-iommu.h
  
@@@ -1097,7 -1092,7 +1097,7 @@@ F:      Documentation/ABI/testing/sysfs-amd-
  F:    drivers/platform/x86/amd/pmf/
  
  AMD POWERPLAY AND SWSMU
 -M:    Evan Quan <evan.quan@amd.com>
 +M:    Kenneth Feng <kenneth.feng@amd.com>
  L:    [email protected]
  S:    Supported
  T:    git https://gitlab.freedesktop.org/agd5f/linux.git
@@@ -1112,6 -1107,7 +1112,6 @@@ L:      [email protected]
  S:    Supported
  F:    Documentation/admin-guide/pm/amd-pstate.rst
  F:    drivers/cpufreq/amd-pstate*
 -F:    include/linux/amd-pstate.h
  F:    tools/power/x86/amd_pstate_tracer/amd_pstate_trace.py
  
  AMD PTDMA DRIVER
@@@ -1212,7 -1208,7 +1212,7 @@@ F:      Documentation/devicetree/bindings/ii
  F:    drivers/iio/adc/ad7091r*
  
  ANALOG DEVICES INC AD7192 DRIVER
 -M:    Alexandru Tachici <alexandru.tachici@analog.com>
 +M:    Alisa-Dariana Roman <alisa.roman@analog.com>
  L:    [email protected]
  S:    Supported
  W:    https://ez.analog.com/linux-software-drivers
@@@ -1913,15 -1909,6 +1913,15 @@@ F:    include/dt-bindings/reset/actions,
  F:    include/linux/soc/actions/
  N:    owl
  
 +ARM/AIROHA SOC SUPPORT
 +M:    Matthias Brugger <[email protected]>
 +M:    AngeloGioacchino Del Regno <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Odd Fixes
 +F:    arch/arm/boot/dts/airoha/
 +F:    arch/arm64/boot/dts/airoha/
 +
  ARM/Allwinner SoC Clock Support
  M:    Emilio López <[email protected]>
  S:    Maintained
@@@ -1944,16 -1931,6 +1944,16 @@@ N:    allwinne
  N:    sun[x456789]i
  N:    sun[25]0i
  
 +ARM/ALPHASCALE ARCHITECTURE
 +M:    Krzysztof Kozlowski <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Odd Fixes
 +F:    arch/arm/boot/dts/alphascale/
 +F:    drivers/clk/clk-asm9260.c
 +F:    drivers/clocksource/asm9260_timer.c
 +F:    drivers/rtc/rtc-asm9260.c
 +F:    drivers/watchdog/asm9260_wdt.c
 +
  ARM/AMD PENSANDO ARM64 ARCHITECTURE
  M:    Brad Larson <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -2009,9 -1986,10 +2009,9 @@@ F:     drivers/soc/amlogic
  N:    meson
  
  ARM/Annapurna Labs ALPINE ARCHITECTURE
 -M:    Tsahee Zidenberg <[email protected]>
  M:    Antoine Tenart <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 +S:    Odd Fixes
  F:    arch/arm/boot/dts/amazon/
  F:    arch/arm/mach-alpine/
  F:    arch/arm64/boot/dts/amazon/
@@@ -2116,14 -2094,6 +2116,14 @@@ F:    arch/arm/boot/dts/aspeed
  F:    arch/arm/mach-aspeed/
  N:    aspeed
  
 +ARM/AXM LSI SOC
 +M:    Krzysztof Kozlowski <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Odd Fixes
 +F:    Documentation/devicetree/bindings/arm/axxia.yaml
 +F:    arch/arm/boot/dts/intel/axm/
 +F:    arch/arm/mach-axxia/
 +
  ARM/BITMAIN ARCHITECTURE
  M:    Manivannan Sadhasivam <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -2237,14 -2207,11 +2237,14 @@@ M:   Marek Behún <[email protected]
  S:    Maintained
  W:    https://www.turris.cz/
  F:    Documentation/ABI/testing/debugfs-moxtet
 +F:    Documentation/ABI/testing/sysfs-bus-i2c-devices-turris-omnia-mcu
  F:    Documentation/ABI/testing/sysfs-bus-moxtet-devices
  F:    Documentation/ABI/testing/sysfs-firmware-turris-mox-rwtm
  F:    Documentation/devicetree/bindings/bus/moxtet.txt
  F:    Documentation/devicetree/bindings/firmware/cznic,turris-mox-rwtm.txt
 +F:    Documentation/devicetree/bindings/firmware/cznic,turris-omnia-mcu.yaml
  F:    Documentation/devicetree/bindings/gpio/gpio-moxtet.txt
 +F:    Documentation/devicetree/bindings/interrupt-controller/marvell,mpic.yaml
  F:    Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.yaml
  F:    Documentation/devicetree/bindings/watchdog/armada-37xx-wdt.txt
  F:    drivers/bus/moxtet.c
@@@ -2252,12 -2219,10 +2252,12 @@@ F:   drivers/firmware/turris-mox-rwtm.
  F:    drivers/gpio/gpio-moxtet.c
  F:    drivers/leds/leds-turris-omnia.c
  F:    drivers/mailbox/armada-37xx-rwtm-mailbox.c
 +F:    drivers/platform/cznic/
  F:    drivers/watchdog/armada_37xx_wdt.c
  F:    include/dt-bindings/bus/moxtet.h
  F:    include/linux/armada-37xx-rwtm-mailbox.h
  F:    include/linux/moxtet.h
 +F:    include/linux/turris-omnia-mcu-interface.h
  
  ARM/FARADAY FA526 PORT
  M:    Hans Ulli Kroll <[email protected]>
@@@ -2410,7 -2375,7 +2410,7 @@@ ARM/LPC18XX ARCHITECTUR
  M:    Vladimir Zapolskiy <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/i2c/i2c-lpc2k.txt
 +F:    Documentation/devicetree/bindings/i2c/nxp,lpc1788-i2c.yaml
  F:    arch/arm/boot/dts/nxp/lpc/lpc43*
  F:    drivers/i2c/busses/i2c-lpc2k.c
  F:    drivers/memory/pl172.c
@@@ -2559,15 -2524,6 +2559,15 @@@ F:    arch/arm/boot/dts/socionext/milbeaut
  F:    arch/arm/mach-milbeaut/
  N:    milbeaut
  
 +ARM/MOXA ART SOC
 +M:    Krzysztof Kozlowski <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Odd Fixes
 +F:    Documentation/devicetree/bindings/arm/moxart.yaml
 +F:    Documentation/devicetree/bindings/clock/moxa,moxart-clock.txt
 +F:    arch/arm/boot/dts/moxa/
 +F:    drivers/clk/clk-moxart.c
 +
  ARM/MStar/Sigmastar Armv7 SoC support
  M:    Daniel Palmer <[email protected]>
  M:    Romain Perier <[email protected]>
@@@ -2937,7 -2893,7 +2937,7 @@@ F:      drivers/edac/altera_edac.[ch
  ARM/SPREADTRUM SoC SUPPORT
  M:    Orson Zhai <[email protected]>
  M:    Baolin Wang <[email protected]>
 -M:    Chunyan Zhang <[email protected]>
 +R:    Chunyan Zhang <[email protected]>
  S:    Maintained
  F:    arch/arm64/boot/dts/sprd
  N:    sprd
@@@ -3078,15 -3034,6 +3078,15 @@@ F:    Documentation/devicetree/bindings/hw
  F:    arch/arm64/boot/dts/ti/Makefile
  F:    arch/arm64/boot/dts/ti/k3-*
  
 +ARM/TEXAS INSTRUMENTS NSPIRE ARCHITECTURE
 +M:    Krzysztof Kozlowski <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Odd Fixes
 +F:    Documentation/devicetree/bindings/*/*/ti,nspire*
 +F:    Documentation/devicetree/bindings/*/ti,nspire*
 +F:    Documentation/devicetree/bindings/arm/ti/nspire.yaml
 +F:    arch/arm/boot/dts/nspire/
 +
  ARM/TOSHIBA VISCONTI ARCHITECTURE
  M:    Nobuhiro Iwamatsu <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -3156,12 -3103,9 +3156,12 @@@ W:    http://www.armlinux.org.uk
  F:    arch/arm/vfp/
  
  ARM/VT8500 ARM ARCHITECTURE
 +M:    Alexey Charkov <[email protected]>
 +M:    Krzysztof Kozlowski <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Orphan
 +S:    Odd Fixes
  F:    Documentation/devicetree/bindings/i2c/i2c-wmt.txt
 +F:    arch/arm/boot/dts/vt8500/
  F:    arch/arm/mach-vt8500/
  F:    drivers/clocksource/timer-vt8500.c
  F:    drivers/i2c/busses/i2c-viai2c-wmt.c
@@@ -3578,13 -3522,6 +3578,13 @@@ F:    include/linux/cfag12864b.
  F:    include/uapi/linux/map_to_14segment.h
  F:    include/uapi/linux/map_to_7segment.h
  
 +AVAGO APDS9306 AMBIENT LIGHT SENSOR DRIVER
 +M:    Subhajit Ghosh <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/light/avago,apds9300.yaml
 +F:    drivers/iio/light/apds9306.c
 +
  AVIA HX711 ANALOG DIGITAL CONVERTER IIO DRIVER
  M:    Andreas Klinger <[email protected]>
  L:    [email protected]
@@@ -3634,15 -3571,6 +3634,15 @@@ W:    https://ez.analog.com/linux-software
  F:    Documentation/devicetree/bindings/spi/adi,axi-spi-engine.yaml
  F:    drivers/spi/spi-axi-spi-engine.c
  
 +AXI PWM GENERATOR
 +M:    Michael Hennerich <[email protected]>
 +M:    Nuno Sá <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    https://ez.analog.com/linux-software-drivers
 +F:    Documentation/devicetree/bindings/pwm/adi,axi-pwmgen.yaml
 +F:    drivers/pwm/pwm-axi-pwmgen.c
 +
  AXXIA I2C CONTROLLER
  M:    Krzysztof Adamski <[email protected]>
  L:    [email protected]
@@@ -3674,9 -3602,10 +3674,9 @@@ W:     https://wireless.wiki.kernel.org/en/
  F:    drivers/net/wireless/broadcom/b43/
  
  B43LEGACY WIRELESS DRIVER
 -M:    Larry Finger <[email protected]>
  L:    [email protected]
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/b43
  F:    drivers/net/wireless/broadcom/b43legacy/
  
@@@ -3743,6 -3672,7 +3743,6 @@@ F:      drivers/md/bcache
  
  BCACHEFS
  M:    Kent Overstreet <[email protected]>
 -R:    Brian Foster <[email protected]>
  L:    [email protected]
  S:    Supported
  C:    irc://irc.oftc.net/bcache
@@@ -3801,10 -3731,8 +3801,10 @@@ F:    include/linux/bitmap-str.
  F:    include/linux/bitmap.h
  F:    include/linux/bits.h
  F:    include/linux/cpumask.h
 +F:    include/linux/cpumask_types.h
  F:    include/linux/find.h
  F:    include/linux/nodemask.h
 +F:    include/linux/nodemask_types.h
  F:    include/vdso/bits.h
  F:    lib/bitmap-str.c
  F:    lib/bitmap.c
@@@ -3854,20 -3782,6 +3854,20 @@@ F:    include/linux/blk
  F:    kernel/trace/blktrace.c
  F:    lib/sbitmap.c
  
 +BLOCK LAYER DEVICE DRIVER API [RUST]
 +M:    Andreas Hindborg <[email protected]>
 +R:    Boqun Feng <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +W:    https://rust-for-linux.com
 +B:    https://github.com/Rust-for-Linux/linux/issues
 +C:    https://rust-for-linux.zulipchat.com/#narrow/stream/Block
 +T:    git https://github.com/Rust-for-Linux/linux.git rust-block-next
 +F:    drivers/block/rnull.rs
 +F:    rust/kernel/block.rs
 +F:    rust/kernel/block/
 +
  BLOCK2MTD DRIVER
  M:    Joern Engel <[email protected]>
  L:    [email protected]
@@@ -4067,7 -3981,7 +4067,7 @@@ R:      Song Liu <[email protected]
  R:    Yonghong Song <[email protected]>
  R:    John Fastabend <[email protected]>
  R:    KP Singh <[email protected]>
 -R:    Stanislav Fomichev <sdf@google.com>
 +R:    Stanislav Fomichev <sdf@fomichev.me>
  R:    Hao Luo <[email protected]>
  R:    Jiri Olsa <[email protected]>
  L:    [email protected]
@@@ -4170,13 -4084,12 +4170,13 @@@ F:   kernel/bpf/ringbuf.
  
  BPF [SECURITY & LSM] (Security Audit and Enforcement using BPF)
  M:    KP Singh <[email protected]>
 -R:    Matt Bobrowski <[email protected]>
 +M:    Matt Bobrowski <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/bpf/prog_lsm.rst
  F:    include/linux/bpf_lsm.h
  F:    kernel/bpf/bpf_lsm.c
 +F:    kernel/trace/bpf_trace.c
  F:    security/bpf/
  
  BPF [SELFTESTS] (Test Runners & Infrastructure)
@@@ -4930,7 -4843,6 +4930,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:    Documentation/networking/iso15765-2.rst
  F:    include/linux/can/can-ml.h
  F:    include/linux/can/core.h
  F:    include/linux/can/skb.h
@@@ -5224,30 -5136,11 +5224,30 @@@ S:   Maintaine
  F:    Documentation/devicetree/bindings/sound/google,cros-ec-codec.yaml
  F:    sound/soc/codecs/cros_ec_codec.*
  
 +CHROMEOS EC CHARGE CONTROL
 +M:    Thomas Weißschuh <[email protected]>
 +S:    Maintained
 +F:    drivers/power/supply/cros_charge-control.c
 +
 +CHROMEOS EC HARDWARE MONITORING
 +M:    Thomas Weißschuh <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hwmon/cros_ec_hwmon.rst
 +F:    drivers/hwmon/cros_ec_hwmon.c
 +
 +CHROMEOS EC LED DRIVER
 +M:    Thomas Weißschuh <[email protected]>
 +S:    Maintained
 +F:    drivers/leds/leds-cros_ec.c
 +
  CHROMEOS EC SUBDRIVERS
  M:    Benson Leung <[email protected]>
  R:    Guenter Roeck <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    drivers/power/supply/cros_charge-control.c
  F:    drivers/power/supply/cros_usbpd-charger.c
  N:    cros_ec
  N:    cros-ec
@@@ -5313,18 -5206,6 +5313,18 @@@ F:    sound/pci/hda/hda_component
  F:    sound/pci/hda/hda_cs_dsp_ctl.*
  F:    sound/soc/codecs/cs*
  
 +CIRRUS LOGIC HAPTIC DRIVERS
 +M:    James Ogletree <[email protected]>
 +M:    Fred Treven <[email protected]>
 +M:    Ben Bright <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/input/cirrus,cs40l50.yaml
 +F:    drivers/input/misc/cs40l*
 +F:    drivers/mfd/cs40l*
 +F:    include/linux/mfd/cs40l*
 +F:    sound/soc/codecs/cs40l*
 +
  CIRRUS LOGIC DSP FIRMWARE DRIVER
  M:    Simon Trimmer <[email protected]>
  M:    Charles Keepax <[email protected]>
@@@ -5415,7 -5296,7 +5415,7 @@@ F:      drivers/infiniband/hw/usnic
  
  CLANG CONTROL FLOW INTEGRITY SUPPORT
  M:    Sami Tolvanen <[email protected]>
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  R:    Nathan Chancellor <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -5655,7 -5536,6 +5655,7 @@@ CONTROL GROUP (CGROUP
  M:    Tejun Heo <[email protected]>
  M:    Zefan Li <[email protected]>
  M:    Johannes Weiner <[email protected]>
 +M:    Michal Koutný <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
@@@ -5703,8 -5583,6 +5703,8 @@@ L:      [email protected]
  S:    Maintained
  F:    include/linux/memcontrol.h
  F:    mm/memcontrol.c
 +F:    mm/memcontrol-v1.c
 +F:    mm/memcontrol-v1.h
  F:    mm/swap_cgroup.c
  F:    samples/cgroup/*
  F:    tools/testing/selftests/cgroup/memcg_protection.m
@@@ -6238,12 -6116,6 +6238,12 @@@ F:    Documentation/ABI/obsolete/procfs-i8
  F:    drivers/hwmon/dell-smm-hwmon.c
  F:    include/uapi/linux/i8k.h
  
 +DELL PC DRIVER
 +M:    Lyndon Sanche <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/platform/x86/dell/dell-pc.c
 +
  DELL REMOTE BIOS UPDATE DRIVER
  M:    Stuart Hayes <[email protected]>
  L:    [email protected]
@@@ -6367,8 -6239,9 +6367,8 @@@ S:      Maintaine
  F:    drivers/usb/dwc3/
  
  DESIGNWARE XDATA IP DRIVER
 -M:    Gustavo Pimentel <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  F:    Documentation/misc-devices/dw-xdata-pcie.rst
  F:    drivers/misc/dw-xdata-pcie.c
  
@@@ -7027,11 -6900,6 +7027,11 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/display/panel/ilitek,ili9805.yaml
  F:    drivers/gpu/drm/panel/panel-ilitek-ili9805.c
  
 +DRM DRIVER FOR ILITEK ILI9806E PANELS
 +M:    Michael Walle <[email protected]>
 +S:    Maintained
 +F:    drivers/gpu/drm/panel/panel-ilitek-ili9806e.c
 +
  DRM DRIVER FOR JADARD JD9365DA-H3 MIPI-DSI LCD PANELS
  M:    Jagan Teki <[email protected]>
  S:    Maintained
@@@ -7042,7 -6910,7 +7042,7 @@@ DRM DRIVER FOR LG SW43408 PANEL
  M:    Sumit Semwal <[email protected]>
  M:    Caleb Connolly <[email protected]>
  S:    Maintained
 -T:    git git://anongit.freedesktop.org/drm/drm-misc
 +T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
  F:    Documentation/devicetree/bindings/display/panel/lg,sw43408.yaml
  F:    drivers/gpu/drm/panel/panel-lg-sw43408.c
  
@@@ -7329,7 -7197,6 +7329,7 @@@ L:      [email protected]
  S:    Maintained
  T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
  F:    Documentation/gpu/vkms.rst
 +F:    drivers/gpu/drm/ci/xfails/vkms*
  F:    drivers/gpu/drm/vkms/
  
  DRM DRIVER FOR VIRTUALBOX VIRTUAL GPU
@@@ -7611,7 -7478,6 +7611,7 @@@ L:      [email protected]
  S:    Maintained
  T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
  F:    Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
 +F:    Documentation/devicetree/bindings/display/st,stm32mp25-lvds.yaml
  F:    drivers/gpu/drm/stm
  
  DRM DRIVERS FOR TI KEYSTONE
@@@ -7653,9 -7519,8 +7653,9 @@@ F:      include/uapi/drm/v3d_drm.
  
  DRM DRIVERS FOR VC4
  M:    Maxime Ripard <[email protected]>
 +M:    Dave Stevenson <[email protected]>
 +R:    Raspberry Pi Kernel Maintenance <[email protected]>
  S:    Supported
 -T:    git git://github.com/anholt/linux
  T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
  F:    Documentation/devicetree/bindings/display/brcm,bcm2835-*.yaml
  F:    drivers/gpu/drm/vc4/
@@@ -7702,6 -7567,7 +7702,6 @@@ F:      include/drm/gpu_scheduler.
  DRM PANEL DRIVERS
  M:    Neil Armstrong <[email protected]>
  R:    Jessica Zhang <[email protected]>
 -R:    Sam Ravnborg <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git https://gitlab.freedesktop.org/drm/misc/kernel.git
@@@ -8346,15 -8212,13 +8346,15 @@@ F:   rust/kernel/net/phy.r
  
  EXEC & BINFMT API, ELF
  R:    Eric Biederman <[email protected]>
 -R:    Kees Cook <keescook@chromium.org>
 +R:    Kees Cook <kees@kernel.org>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/execve
  F:    Documentation/userspace-api/ELF.rst
  F:    fs/*binfmt_*.c
 +F:    fs/Kconfig.binfmt
  F:    fs/exec.c
 +F:    fs/exec_test.c
  F:    include/linux/binfmts.h
  F:    include/linux/elf.h
  F:    include/uapi/linux/binfmts.h
@@@ -8619,7 -8483,6 +8619,7 @@@ R:      Darrick J. Wong <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 +F:    Documentation/filesystems/iomap/*
  F:    fs/iomap/
  F:    include/linux/iomap.h
  
@@@ -8750,7 -8613,7 +8750,7 @@@ S:      Maintaine
  F:    drivers/net/ethernet/nvidia/*
  
  FORTIFY_SOURCE
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
@@@ -8846,7 -8709,7 +8846,7 @@@ FREESCALE DSPI DRIVE
  M:    Vladimir Oltean <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
 +F:    Documentation/devicetree/bindings/spi/fsl,dspi*.yaml
  F:    drivers/spi/spi-fsl-dspi.c
  F:    include/linux/spi/spi-fsl-dspi.h
  
@@@ -8947,14 -8810,14 +8947,14 @@@ M:   Madalin Bucur <[email protected]
  R:    Sean Anderson <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/net/fsl-fman.txt
 +F:    Documentation/devicetree/bindings/net/fsl,fman*.yaml
  F:    drivers/net/ethernet/freescale/fman
  
  FREESCALE QORIQ PTP CLOCK DRIVER
  M:    Yangbo Lu <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/ptp/ptp-qoriq.txt
 +F:    Documentation/devicetree/bindings/ptp/fsl,ptp.yaml
  F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp*
  F:    drivers/net/ethernet/freescale/dpaa2/dprtc*
  F:    drivers/net/ethernet/freescale/enetc/enetc_ptp.c
@@@ -8971,7 -8834,6 +8971,7 @@@ F:      drivers/spi/spi-fsl-qspi.
  
  FREESCALE QUICC ENGINE LIBRARY
  M:    Qiang Zhao <[email protected]>
 +M:    Christophe Leroy <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/soc/fsl/qe/
@@@ -9021,10 -8883,9 +9021,10 @@@ S:    Maintaine
  F:    drivers/tty/serial/ucc_uart.c
  
  FREESCALE SOC DRIVERS
 +M:    Christophe Leroy <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
 -S:    Orphan
 +S:    Maintained
  F:    Documentation/devicetree/bindings/misc/fsl,dpaa2-console.yaml
  F:    Documentation/devicetree/bindings/soc/fsl/
  F:    drivers/soc/fsl/
@@@ -9049,16 -8910,6 +9049,16 @@@ S:    Maintaine
  F:    sound/soc/fsl/fsl*
  F:    sound/soc/fsl/imx*
  
 +FREESCALE SOC LPC32XX SOUND DRIVERS
 +M:    J.M.B. Downing <[email protected]>
 +M:    Piotr Wojtaszczyk <[email protected]>
 +R:    Vladimir Zapolskiy <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/nxp,lpc3220-i2s.yaml
 +F:    sound/soc/fsl/lpc3xxx-*
 +
  FREESCALE SOC SOUND QMC DRIVER
  M:    Herve Codina <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -9125,7 -8976,7 +9125,7 @@@ M:      Eddie James <[email protected]
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/i2c/i2c-fsi.txt
 +F:    Documentation/devicetree/bindings/i2c/ibm,i2c-fsi.yaml
  F:    drivers/i2c/busses/i2c-fsi.c
  
  FSI-ATTACHED SPI DRIVER
@@@ -9233,20 -9084,6 +9233,20 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/media/i2c/galaxycore,gc0308.yaml
  F:    drivers/media/i2c/gc0308.c
  
 +GALAXYCORE GC05a2 CAMERA SENSOR DRIVER
 +M:    Zhi Mao <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/galaxycore,gc05a2.yaml
 +F:    drivers/media/i2c/gc05a2.c
 +
 +GALAXYCORE GC08A3 CAMERA SENSOR DRIVER
 +M:    Zhi Mao <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/galaxycore,gc08a3.yaml
 +F:    drivers/media/i2c/gc08a3.c
 +
  GALAXYCORE GC2145 SENSOR DRIVER
  M:    Alain Volmat <[email protected]>
  L:    [email protected]
@@@ -9266,7 -9103,7 +9266,7 @@@ F:      include/linux/mfd/gsc.
  F:    include/linux/platform_data/gsc_hwmon.h
  
  GCC PLUGINS
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
@@@ -9400,7 -9237,7 +9400,7 @@@ S:      Maintaine
  F:    drivers/input/touchscreen/resistive-adc-touch.c
  
  GENERIC STRING LIBRARY
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  R:    Andy Shevchenko <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -9755,11 -9592,11 +9755,11 @@@ S:   Maintaine
  F:    block/partitions/efi.*
  
  HABANALABS PCI DRIVER
 -M:    Oded Gabbay <[email protected]>
 +M:    Ofir Bitton <[email protected]>
  L:    [email protected]
  S:    Supported
  C:    irc://irc.oftc.net/dri-devel
 -T:    git https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux.git
 +T:    git https://github.com/HabanaAI/drivers.accel.habanalabs.kernel.git
  F:    Documentation/ABI/testing/debugfs-driver-habanalabs
  F:    Documentation/ABI/testing/sysfs-driver-habanalabs
  F:    drivers/accel/habanalabs/
@@@ -10817,7 -10654,7 +10817,7 @@@ F:   net/ieee802154
  F:    net/mac802154/
  
  Intel VIRTIO DATA PATH ACCELERATOR
 -M:    Zhu Lingshan <lingshan.zhu@intel.com>
 +M:    Zhu Lingshan <lingshan.zhu@kernel.org>
  L:    [email protected]
  S:    Supported
  F:    drivers/vdpa/ifcvf/
@@@ -10929,13 -10766,6 +10929,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/auxdisplay/img,ascii-lcd.yaml
  F:    drivers/auxdisplay/img-ascii-lcd.c
  
 +IMGTEC JPEG ENCODER DRIVER
 +M:    Devarsh Thakkar <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/media/img,e5010-jpeg-enc.yaml
 +F:    drivers/media/platform/imagination/e5010*
 +
  IMGTEC IR DECODER DRIVER
  S:    Orphan
  F:    drivers/media/rc/img-ir/
@@@ -11183,7 -11013,6 +11183,7 @@@ S:   Supporte
  F:    drivers/gpu/drm/i915/display/
  F:    drivers/gpu/drm/xe/display/
  F:    drivers/gpu/drm/xe/compat-i915-headers
 +F:    include/drm/intel/
  
  INTEL DRM I915 DRIVER (Meteor Lake, DG2 and older excluding Poulsbo, Moorestown and derivative)
  M:    Jani Nikula <[email protected]>
@@@ -11196,18 -11025,18 +11196,18 @@@ W:        https://drm.pages.freedesktop.org/in
  Q:    http://patchwork.freedesktop.org/project/intel-gfx/
  B:    https://drm.pages.freedesktop.org/intel-docs/how-to-file-i915-bugs.html
  C:    irc://irc.oftc.net/intel-gfx
 -T:    git git://anongit.freedesktop.org/drm-intel
 +T:    git https://gitlab.freedesktop.org/drm/i915/kernel.git
  F:    Documentation/ABI/testing/sysfs-driver-intel-i915-hwmon
  F:    Documentation/gpu/i915.rst
  F:    drivers/gpu/drm/ci/xfails/i915*
  F:    drivers/gpu/drm/i915/
 -F:    include/drm/i915*
 +F:    include/drm/intel/
  F:    include/uapi/drm/i915_drm.h
  
  INTEL DRM XE DRIVER (Lunar Lake and newer)
  M:    Lucas De Marchi <[email protected]>
 -M:    Oded Gabbay <[email protected]>
  M:    Thomas Hellström <[email protected]>
 +M:    Rodrigo Vivi <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://drm.pages.freedesktop.org/intel-docs/
@@@ -11218,12 -11047,12 +11218,12 @@@ T:        git https://gitlab.freedesktop.org/d
  F:    Documentation/ABI/testing/sysfs-driver-intel-xe-hwmon
  F:    Documentation/gpu/xe/
  F:    drivers/gpu/drm/xe/
 -F:    include/drm/xe*
 +F:    include/drm/intel/
  F:    include/uapi/drm/xe_drm.h
  
  INTEL ETHERNET DRIVERS
 -M:    Jesse Brandeburg <[email protected]>
  M:    Tony Nguyen <[email protected]>
 +M:    Przemek Kitszel <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  W:    https://www.intel.com/content/www/us/en/support.html
@@@ -11238,7 -11067,7 +11238,7 @@@ F:   include/linux/net/intel/iidc.
  
  INTEL ETHERNET PROTOCOL DRIVER FOR RDMA
  M:    Mustafa Ismail <[email protected]>
 -M:    Shiraz Saleem <shiraz.saleem@intel.com>
 +M:    Tatyana Nikolova <tatyana.e.nikolova@intel.com>
  L:    [email protected]
  S:    Supported
  F:    drivers/infiniband/hw/irdma/
@@@ -11315,7 -11144,6 +11315,7 @@@ R:   Tony Luck <[email protected]
  S:    Maintained
  F:    drivers/platform/x86/intel/ifs
  F:    include/trace/events/intel_ifs.h
 +F:    tools/testing/selftests/drivers/platform/x86/intel/ifs/
  
  INTEL INTEGRATED SENSOR HUB DRIVER
  M:    Srinivas Pandruvada <[email protected]>
@@@ -11329,7 -11157,7 +11329,7 @@@ M:   David Woodhouse <[email protected]
  M:    Lu Baolu <[email protected]>
  L:    [email protected]
  S:    Supported
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git
  F:    drivers/iommu/intel/
  
  INTEL IPU3 CSI-2 CIO2 DRIVER
@@@ -11682,7 -11510,6 +11682,7 @@@ M:   Jean-Baptiste Maneyrol <jmaneyrol@in
  L:    [email protected]
  S:    Maintained
  W:    https://invensense.tdk.com/
 +F:    Documentation/ABI/testing/sysfs-bus-iio-inv_icm42600
  F:    Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
  F:    drivers/iio/imu/inv_icm42600/
  
@@@ -11703,7 -11530,7 +11703,7 @@@ IOMMU DMA-API LAYE
  M:    Robin Murphy <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git
  F:    drivers/iommu/dma-iommu.c
  F:    drivers/iommu/dma-iommu.h
  F:    drivers/iommu/iova.c
@@@ -11715,8 -11542,9 +11715,8 @@@ M:   Will Deacon <[email protected]
  R:    Robin Murphy <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux.git
  F:    Documentation/devicetree/bindings/iommu/
 -F:    Documentation/userspace-api/iommu.rst
  F:    drivers/iommu/
  F:    include/linux/iommu.h
  F:    include/linux/iova.h
@@@ -11743,7 -11571,7 +11743,7 @@@ F:   include/linux/iosys-map.
  
  IO_URING
  M:    Jens Axboe <[email protected]>
 -R:    Pavel Begunkov <[email protected]>
 +M:    Pavel Begunkov <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.dk/linux-block
@@@ -12123,7 -11951,7 +12123,7 @@@ F:   scripts/package
  F:    usr/
  
  KERNEL HARDENING (not covered by other areas)
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  R:    Gustavo A. R. Silva <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -12134,7 -11962,6 +12134,7 @@@ F:   arch/*/configs/hardening.confi
  F:    include/linux/overflow.h
  F:    include/linux/randomize_kstack.h
  F:    kernel/configs/hardening.config
 +F:    lib/usercopy_kunit.c
  F:    mm/usercopy.c
  K:    \b(add|choose)_random_kstack_offset\b
  K:    \b__check_(object_size|heap_object)\b
@@@ -12154,7 -11981,7 +12154,7 @@@ R:   Dai Ngo <[email protected]
  R:    Tom Talpey <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    http://nfs.sourceforge.net/
 +B:    https://bugzilla.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git
  F:    Documentation/filesystems/nfs/
  F:    fs/lockd/
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git
 +F:    Documentation/virt/kvm/arm/
 +F:    Documentation/virt/kvm/devices/arm*
  F:    arch/arm64/include/asm/kvm*
  F:    arch/arm64/include/uapi/asm/kvm*
  F:    arch/arm64/kvm/
@@@ -12558,6 -12383,7 +12558,6 @@@ F:   drivers/video/backlight/ktz8866.
  
  KVM PARAVIRT (KVM/paravirt)
  M:    Paolo Bonzini <[email protected]>
 -R:    Wanpeng Li <[email protected]>
  R:    Vitaly Kuznetsov <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -12624,7 -12450,6 +12624,7 @@@ LANTIQ / INTEL Ethernet driver
  M:    Hauke Mehrtens <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/net/dsa/lantiq,gswip.yaml
  F:    drivers/net/dsa/lantiq_gswip.c
  F:    drivers/net/dsa/lantiq_pce.h
  F:    drivers/net/ethernet/lantiq_xrx200.c
@@@ -12654,7 -12479,7 +12654,7 @@@ F:   drivers/scsi/53c700
  
  LEAKING_ADDRESSES
  M:    Tycho Andersen <[email protected]>
 -R:    Kees Cook <keescook@chromium.org>
 +R:    Kees Cook <kees@kernel.org>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
@@@ -12665,7 -12490,7 +12665,7 @@@ M:   Pavel Machek <[email protected]
  M:    Lee Jones <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds.git
  F:    Documentation/devicetree/bindings/leds/
  F:    Documentation/leds/
  F:    drivers/leds/
@@@ -12930,6 -12755,7 +12930,6 @@@ F:   arch/powerpc/platforms/52xx
  LINUX FOR POWERPC EMBEDDED PPC4XX
  L:    [email protected]
  S:    Orphan
 -F:    arch/powerpc/platforms/40x/
  F:    arch/powerpc/platforms/44x/
  
  LINUX FOR POWERPC EMBEDDED PPC85XX
@@@ -12949,7 -12775,7 +12949,7 @@@ F:   arch/powerpc/platforms/8xx
  F:    arch/powerpc/platforms/83xx/
  
  LINUX KERNEL DUMP TEST MODULE (LKDTM)
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  S:    Maintained
  F:    drivers/misc/lkdtm/*
  F:    tools/testing/selftests/lkdtm/*
@@@ -13079,7 -12905,7 +13079,7 @@@ Q:   http://patchwork.linuxtv.org/project
  F:    drivers/media/usb/dvb-usb-v2/lmedm04*
  
  LOADPIN SECURITY MODULE
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    Documentation/admin-guide/LSM/LoadPin.rst
@@@ -13143,7 -12969,6 +13143,7 @@@ F:   Documentation/arch/loongarch
  F:    Documentation/translations/zh_CN/arch/loongarch/
  F:    arch/loongarch/
  F:    drivers/*/*loongarch*
 +F:    drivers/cpufreq/loongson3_cpufreq.c
  
  LOONGSON GPIO DRIVER
  M:    Yinbo Zhu <[email protected]>
@@@ -13470,15 -13295,6 +13470,15 @@@ F: drivers/net/dsa/mv88e6xxx
  F:    include/linux/dsa/mv88e6xxx.h
  F:    include/linux/platform_data/mv88e6xxx.h
  
 +MARVELL 88PM886 PMIC DRIVER
 +M:    Karel Balej <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/mfd/marvell,88pm886-a1.yaml
 +F:    drivers/input/misc/88pm886-onkey.c
 +F:    drivers/mfd/88pm886.c
 +F:    drivers/regulators/88pm886-regulator.c
 +F:    include/linux/mfd/88pm886.h
 +
  MARVELL ARMADA 3700 PHY DRIVERS
  M:    Miquel Raynal <[email protected]>
  S:    Maintained
@@@ -13644,16 -13460,6 +13644,16 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.yaml
  F:    drivers/mmc/host/sdhci-xenon*
  
 +MARVELL OCTEON CN10K DPI DRIVER
 +M:    Vamsi Attunuru <[email protected]>
 +S:    Supported
 +F:    drivers/misc/mrvl_cn10k_dpi.c
 +
 +MARVELL OCTEON ENDPOINT VIRTIO DATA PATH ACCELERATOR
 +R:    [email protected]
 +R:    [email protected]
 +F:    drivers/vdpa/octeon_ep/
 +
  MATROX FRAMEBUFFER DRIVER
  L:    [email protected]
  S:    Orphan
@@@ -13708,20 -13514,6 +13708,20 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/media/i2c/maxim,max96712.yaml
  F:    drivers/staging/media/max96712/max96712.c
  
 +MAX96714 GMSL2 DESERIALIZER DRIVER
 +M:    Julien Massot <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/maxim,max96714.yaml
 +F:    drivers/media/i2c/max96714.c
 +
 +MAX96717 GMSL2 SERIALIZER DRIVER
 +M:    Julien Massot <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/maxim,max96717.yaml
 +F:    drivers/media/i2c/max96717.c
 +
  MAX9860 MONO AUDIO VOICE CODEC DRIVER
  M:    Peter Rosin <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -14683,7 -14475,7 +14683,7 @@@ MEMORY MAPPIN
  M:    Andrew Morton <[email protected]>
  R:    Liam R. Howlett <[email protected]>
  R:    Vlastimil Babka <[email protected]>
 -R:    Lorenzo Stoakes <lstoakes@gmail.com>
 +R:    Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
  L:    [email protected]
  S:    Maintained
  W:    http://www.linux-mm.org
@@@ -14777,13 -14569,6 +14777,13 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/amlogic,gx-vdec.yaml
  F:    drivers/staging/media/meson/vdec/
  
 +META ETHERNET DRIVERS
 +M:    Alexander Duyck <[email protected]>
 +M:    Jakub Kicinski <[email protected]>
 +R:    [email protected]
 +S:    Supported
 +F:    drivers/net/ethernet/meta/
 +
  METHODE UDPU SUPPORT
  M:    Robert Marko <[email protected]>
  S:    Maintained
  S:    Maintained
  F:    drivers/net/ethernet/microchip/lan966x/*
  
+ MICROCHIP LAN966X OIC DRIVER
+ M:    Herve Codina <[email protected]>
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/interrupt-controller/microchip,lan966x-oic.yaml
+ F:    drivers/irqchip/irq-lan966x-oic.c
  MICROCHIP LCDFB DRIVER
  M:    Nicolas Ferre <[email protected]>
  L:    [email protected]
@@@ -15065,7 -14856,6 +15071,7 @@@ MICROCHIP SOC DRIVER
  M:    Conor Dooley <[email protected]>
  S:    Supported
  T:    git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
 +F:    Documentation/devicetree/bindings/soc/microchip/
  F:    drivers/soc/microchip/
  
  MICROCHIP SPI DRIVER
@@@ -15412,14 -15202,9 +15418,14 @@@ M: Théo Lebrun <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/mips/mobileye.yaml
 +F:    Documentation/devicetree/bindings/soc/mobileye/
  F:    arch/mips/boot/dts/mobileye/
  F:    arch/mips/configs/eyeq5_defconfig
  F:    arch/mips/mobileye/board-epm5.its.S
 +F:    drivers/clk/clk-eyeq.c
 +F:    drivers/pinctrl/pinctrl-eyeq5.c
 +F:    drivers/reset/reset-eyeq.c
 +F:    include/dt-bindings/clock/mobileye,eyeq5-clk.h
  
  MODULE SUPPORT
  M:    Luis Chamberlain <[email protected]>
@@@ -15459,6 -15244,7 +15465,6 @@@ F:   drivers/staging/most
  F:    include/linux/most.h
  
  MOTORCOMM PHY DRIVER
 -M:    Peter Geis <[email protected]>
  M:    Frank <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -15478,27 -15264,6 +15484,27 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/leds/backlight/mps,mp3309c.yaml
  F:    drivers/video/backlight/mp3309c.c
  
 +MPS MP2891 DRIVER
 +M:    Noah Wang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hwmon/mp2891.rst
 +F:    drivers/hwmon/pmbus/mp2891.c
 +
 +MPS MP2993 DRIVER
 +M:    Noah Wang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hwmon/mp2993.rst
 +F:    drivers/hwmon/pmbus/mp2993.c
 +
 +MPS MP9941 DRIVER
 +M:    Noah Wang <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hwmon/mp9941.rst
 +F:    drivers/hwmon/pmbus/mp9941.c
 +
  MR800 AVERMEDIA USB FM RADIO DRIVER
  M:    Alexey Klimov <[email protected]>
  L:    [email protected]
@@@ -15993,7 -15758,7 +15999,7 @@@ B:   https://github.com/multipath-tcp/mpt
  T:    git https://github.com/multipath-tcp/mptcp_net-next.git export-net
  T:    git https://github.com/multipath-tcp/mptcp_net-next.git export
  F:    Documentation/netlink/specs/mptcp_pm.yaml
 -F:    Documentation/networking/mptcp-sysctl.rst
 +F:    Documentation/networking/mptcp*.rst
  F:    include/net/mptcp.h
  F:    include/trace/events/mptcp.h
  F:    include/uapi/linux/mptcp*.h
@@@ -16010,13 -15775,8 +16016,13 @@@ F: include/linux/tcp.
  F:    include/net/tcp.h
  F:    include/trace/events/tcp.h
  F:    include/uapi/linux/tcp.h
 +F:    net/ipv4/inet_connection_sock.c
 +F:    net/ipv4/inet_hashtables.c
 +F:    net/ipv4/inet_timewait_sock.c
  F:    net/ipv4/syncookies.c
  F:    net/ipv4/tcp*.c
 +F:    net/ipv6/inet6_connection_sock.c
 +F:    net/ipv6/inet6_hashtables.c
  F:    net/ipv6/syncookies.c
  F:    net/ipv6/tcp*.c
  
@@@ -16073,7 -15833,7 +16079,7 @@@ F:   drivers/nfc/virtual_ncidev.
  F:    tools/testing/selftests/nci/
  
  NFS, SUNRPC, AND LOCKD CLIENTS
 -M:    Trond Myklebust <trond[email protected]>
 +M:    Trond Myklebust <trond[email protected]>
  M:    Anna Schumaker <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -16443,7 -16203,7 +16449,7 @@@ NXP SGTL5000 DRIVE
  M:    Fabio Estevam <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/sound/sgtl5000.yaml
 +F:    Documentation/devicetree/bindings/sound/fsl,sgtl5000.yaml
  F:    sound/soc/codecs/sgtl5000*
  
  NXP SJA1105 ETHERNET SWITCH DRIVER
@@@ -16578,6 -16338,7 +16584,6 @@@ S:   Maintaine
  F:    arch/arm/*omap*/*clock*
  
  OMAP DEVICE TREE SUPPORT
 -M:    Benoît Cousson <[email protected]>
  M:    Tony Lindgren <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -16632,6 -16393,7 +16638,6 @@@ S:   Maintaine
  F:    arch/arm/mach-omap2/omap_hwmod*data*
  
  OMAP HWMOD SUPPORT
 -M:    Benoît Cousson <[email protected]>
  M:    Paul Walmsley <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -16693,7 -16455,7 +16699,7 @@@ F:   arch/arm/boot/dts/ti/omap/am335x-nan
  OMAP1 SUPPORT
  M:    Aaro Koskinen <[email protected]>
  M:    Janusz Krzysztofik <[email protected]>
 -M:    Tony Lindgren <[email protected]>
 +R:    Tony Lindgren <[email protected]>
  L:    [email protected]
  S:    Maintained
  Q:    http://patchwork.kernel.org/project/linux-omap/list/
@@@ -16705,13 -16467,10 +16711,13 @@@ F:        include/linux/platform_data/ams-delt
  F:    include/linux/platform_data/i2c-omap.h
  
  OMAP2+ SUPPORT
 +M:    Aaro Koskinen <[email protected]>
 +M:    Andreas Kemnade <[email protected]>
 +M:    Kevin Hilman <[email protected]>
 +M:    Roger Quadros <[email protected]>
  M:    Tony Lindgren <[email protected]>
  L:    [email protected]
  S:    Maintained
 -W:    http://www.muru.com/linux/omap/
  W:    http://linux.omap.com/
  Q:    http://patchwork.kernel.org/project/linux-omap/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
@@@ -17466,14 -17225,6 +17472,14 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/pci/layerscape-pcie-gen4.txt
  F:    drivers/pci/controller/mobiveil/pcie-layerscape-gen4.c
  
 +PCI DRIVER FOR PLDA PCIE IP
 +M:    Daire McNamara <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/plda,xpressrich3-axi-common.yaml
 +F:    drivers/pci/controller/plda/pcie-plda-host.c
 +F:    drivers/pci/controller/plda/pcie-plda.h
 +
  PCI DRIVER FOR RENESAS R-CAR
  M:    Marek Vasut <[email protected]>
  M:    Yoshihiro Shimoda <[email protected]>
@@@ -17606,14 -17357,6 +17612,14 @@@ F: Documentation/driver-api/pci/p2pdma.
  F:    drivers/pci/p2pdma.c
  F:    include/linux/pci-p2pdma.h
  
 +PCI POWER CONTROL
 +M:    Bartosz Golaszewski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git
 +F:    drivers/pci/pwrctl/*
 +F:    include/linux/pci-pwrctl.h
 +
  PCI SUBSYSTEM
  M:    Bjorn Helgaas <[email protected]>
  L:    [email protected]
@@@ -17712,7 -17455,7 +17718,7 @@@ M:   Daire McNamara <daire.mcnamara@micro
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/pci/microchip*
 -F:    drivers/pci/controller/*microchip*
 +F:    drivers/pci/controller/plda/*microchip*
  
  PCIE DRIVER FOR QUALCOMM MSM
  M:    Manivannan Sadhasivam <[email protected]>
  S:    Maintained
  F:    drivers/pci/controller/dwc/*spear*
  
 +PCIE DRIVER FOR STARFIVE JH71x0
 +M:    Kevin Xie <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/starfive,jh7110-pcie.yaml
 +F:    drivers/pci/controller/plda/pcie-starfive.c
 +
  PCIE ENDPOINT DRIVER FOR QUALCOMM
  M:    Manivannan Sadhasivam <[email protected]>
  L:    [email protected]
@@@ -17804,6 -17540,7 +17810,6 @@@ F:   include/linux/peci.
  PENSANDO ETHERNET DRIVERS
  M:    Shannon Nelson <[email protected]>
  M:    Brett Creeley <[email protected]>
 -M:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    Documentation/networking/device_drivers/ethernet/pensando/ionic.rst
@@@ -18161,14 -17898,6 +18167,14 @@@ F: include/linux/pm_
  F:    include/linux/powercap.h
  F:    kernel/configs/nopm.config
  
 +POWER SEQUENCING
 +M:    Bartosz Golaszewski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
 +F:    drivers/power/sequencing/
 +F:    include/linux/pwrseq/
 +
  POWER STATE COORDINATION INTERFACE (PSCI)
  M:    Mark Rutland <[email protected]>
  M:    Lorenzo Pieralisi <[email protected]>
@@@ -18275,7 -18004,7 +18281,7 @@@ F:   tools/testing/selftests/proc
  
  PROC SYSCTL
  M:    Luis Chamberlain <[email protected]>
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  M:    Joel Granados <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -18331,7 -18060,7 +18337,7 @@@ F:   Documentation/devicetree/bindings/ne
  F:    drivers/net/pse-pd/
  
  PSTORE FILESYSTEM
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  R:    Tony Luck <[email protected]>
  R:    Guilherme G. Piccoli <[email protected]>
  L:    [email protected]
@@@ -18489,7 -18218,6 +18495,7 @@@ QCOM AUDIO (ASoC) DRIVER
  M:    Srinivas Kandagatla <[email protected]>
  M:    Banajit Goswami <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/soc/qcom/qcom,apr*
  F:    Documentation/devicetree/bindings/sound/qcom,*
@@@ -18654,7 -18382,7 +18660,7 @@@ M:   Jeff Johnson <[email protected]
  L:    [email protected]
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath12k
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
  F:    drivers/net/wireless/ath/ath12k/
  N:    ath12k
  
@@@ -18664,7 -18392,7 +18670,7 @@@ M:   Jeff Johnson <[email protected]
  L:    [email protected]
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
  F:    drivers/net/wireless/ath/ath10k/
  N:    ath10k
  
  S:    Supported
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath11k
  B:    https://wireless.wiki.kernel.org/en/users/Drivers/ath11k/bugreport
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
  F:    drivers/net/wireless/ath/ath11k/
  N:    ath11k
  
@@@ -18684,7 -18412,7 +18690,7 @@@ M:   Toke Høiland-Jørgensen <toke@toke.
  L:    [email protected]
  S:    Maintained
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git
  F:    Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
  F:    drivers/net/wireless/ath/ath9k/
  
@@@ -18777,7 -18505,6 +18783,7 @@@ QUALCOMM FASTRPC DRIVE
  M:    Srinivas Kandagatla <[email protected]>
  M:    Amol Maheshwari <[email protected]>
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
  F:    drivers/misc/fastrpc.c
@@@ -18884,14 -18611,6 +18890,14 @@@ F: Documentation/networking/device_driv
  F:    drivers/net/ethernet/qualcomm/rmnet/
  F:    include/linux/if_rmnet.h
  
 +QUALCOMM TRUST ZONE MEMORY ALLOCATOR
 +M:    Bartosz Golaszewski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/firmware/qcom/qcom_tzmem.c
 +F:    drivers/firmware/qcom/qcom_tzmem.h
 +F:    include/linux/firmware/qcom/qcom_tzmem.h
 +
  QUALCOMM TSENS THERMAL DRIVER
  M:    Amit Kucheria <[email protected]>
  M:    Thara Gopinath <[email protected]>
@@@ -18937,7 -18656,7 +18943,7 @@@ F:   drivers/net/wireless/quantenn
  RADEON and AMDGPU DRM DRIVERS
  M:    Alex Deucher <[email protected]>
  M:    Christian König <[email protected]>
 -M:    Pan, Xinhui <[email protected]>
 +M:    Xinhui Pan <[email protected]>
  L:    [email protected]
  S:    Supported
  B:    https://gitlab.freedesktop.org/drm/amd/-/issues
  S:    Maintained
  F:    drivers/ras/amd/fmpm.c
  
 +RASPBERRY PI PISP BACK END
 +M:    Jacopo Mondi <[email protected]>
 +L:    Raspberry Pi Kernel Maintenance <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/media/raspberrypi,pispbe.yaml
 +F:    drivers/media/platform/raspberrypi/pisp_be/
 +F:    include/uapi/linux/media/raspberrypi/
 +
  RC-CORE / LIRC FRAMEWORK
  M:    Sean Young <[email protected]>
  L:    [email protected]
@@@ -19164,7 -18874,6 +19170,7 @@@ M:   Neeraj Upadhyay <neeraj.upadhyay@ker
  M:    Joel Fernandes <[email protected]>
  M:    Josh Triplett <[email protected]>
  M:    Boqun Feng <[email protected]>
 +M:    Uladzislau Rezki <[email protected]>
  R:    Steven Rostedt <[email protected]>
  R:    Mathieu Desnoyers <[email protected]>
  R:    Lai Jiangshan <[email protected]>
@@@ -19195,6 -18904,7 +19201,6 @@@ F:   include/uapi/linux/rtc.
  F:    tools/testing/selftests/rtc/
  
  Real-time Linux Analysis (RTLA) tools
 -M:    Daniel Bristot de Oliveira <[email protected]>
  M:    Steven Rostedt <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -19329,14 -19039,6 +19335,14 @@@ F: drivers/net/ethernet/renesas/Makefil
  F:    drivers/net/ethernet/renesas/rcar_gen4*
  F:    drivers/net/ethernet/renesas/rswitch*
  
 +RENESAS ETHERNET TSN DRIVER
 +M:    Niklas Söderlund <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/net/renesas,ethertsn.yaml
 +F:    drivers/net/ethernet/renesas/rtsn.*
 +
  RENESAS IDT821034 ASoC CODEC
  M:    Herve Codina <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.yaml
  F:    Documentation/devicetree/bindings/thermal/rcar-thermal.yaml
 -F:    drivers/thermal/rcar_gen3_thermal.c
 -F:    drivers/thermal/rcar_thermal.c
 +F:    drivers/thermal/renesas/rcar_gen3_thermal.c
 +F:    drivers/thermal/renesas/rcar_thermal.c
  
  RENESAS RIIC DRIVER
  M:    Chris Brandt <[email protected]>
@@@ -19589,7 -19291,7 +19595,7 @@@ F:   drivers/clk/microchip/clk-mpfs*.
  F:    drivers/firmware/microchip/mpfs-auto-update.c
  F:    drivers/i2c/busses/i2c-microchip-corei2c.c
  F:    drivers/mailbox/mailbox-mpfs.c
 -F:    drivers/pci/controller/pcie-microchip-host.c
 +F:    drivers/pci/controller/plda/pcie-microchip-host.c
  F:    drivers/pwm/pwm-microchip-core.c
  F:    drivers/reset/reset-mpfs.c
  F:    drivers/rtc/rtc-mpfs.c
@@@ -19610,7 -19312,6 +19616,7 @@@ F:   arch/riscv/boot/dts
  X:    arch/riscv/boot/dts/allwinner/
  X:    arch/riscv/boot/dts/renesas/
  X:    arch/riscv/boot/dts/sophgo/
 +X:    arch/riscv/boot/dts/thead/
  
  RISC-V PMU DRIVERS
  M:    Atish Patra <[email protected]>
@@@ -19622,16 -19323,12 +19628,16 @@@ F:        drivers/perf/riscv_pmu_legacy.
  F:    drivers/perf/riscv_pmu_sbi.c
  
  RISC-V THEAD SoC SUPPORT
 -M:    Jisheng Zhang <[email protected]>
 +M:    Drew Fustini <[email protected]>
  M:    Guo Ren <[email protected]>
  M:    Fu Wei <[email protected]>
  L:    [email protected]
  S:    Maintained
 +T:    git https://github.com/pdp7/linux.git
 +F:    Documentation/devicetree/bindings/clock/thead,th1520-clk-ap.yaml
  F:    arch/riscv/boot/dts/thead/
 +F:    drivers/clk/thead/clk-th1520-ap.c
 +F:    include/dt-bindings/clock/thead,th1520-clk-ap.h
  
  RNBD BLOCK DRIVERS
  M:    Md. Haris Iqbal <[email protected]>
@@@ -19755,21 -19452,17 +19761,21 @@@ F:        drivers/gpio/gpio-bd71828.
  F:    drivers/mfd/rohm-bd71828.c
  F:    drivers/mfd/rohm-bd718x7.c
  F:    drivers/mfd/rohm-bd9576.c
 +F:    drivers/mfd/rohm-bd96801.c
  F:    drivers/regulator/bd71815-regulator.c
  F:    drivers/regulator/bd71828-regulator.c
  F:    drivers/regulator/bd718x7-regulator.c
  F:    drivers/regulator/bd9576-regulator.c
 +F:    drivers/regulator/bd96801-regulator.c
  F:    drivers/regulator/rohm-regulator.c
  F:    drivers/rtc/rtc-bd70528.c
  F:    drivers/watchdog/bd9576_wdt.c
 +F:    drivers/watchdog/bd96801_wdt.c
  F:    include/linux/mfd/rohm-bd71815.h
  F:    include/linux/mfd/rohm-bd71828.h
  F:    include/linux/mfd/rohm-bd718x7.h
  F:    include/linux/mfd/rohm-bd957x.h
 +F:    include/linux/mfd/rohm-bd96801.h
  F:    include/linux/mfd/rohm-generic.h
  F:    include/linux/mfd/rohm-shared.h
  
@@@ -19824,6 -19517,7 +19830,6 @@@ F:   drivers/net/wireless/realtek/rtl818x
  
  RTL8187 WIRELESS DRIVER
  M:    Hin-Tak Leung <[email protected]>
 -M:    Larry Finger <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git https://github.com/pkshih/rtw.git
@@@ -19844,6 -19538,7 +19850,6 @@@ S:   Maintaine
  F:    drivers/infiniband/ulp/rtrs/
  
  RUNTIME VERIFICATION (RV)
 -M:    Daniel Bristot de Oliveira <[email protected]>
  M:    Steven Rostedt <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -20238,6 -19933,7 +20244,6 @@@ R:   Dietmar Eggemann <dietmar.eggemann@a
  R:    Steven Rostedt <[email protected]> (SCHED_FIFO/SCHED_RR)
  R:    Ben Segall <[email protected]> (CONFIG_CFS_BANDWIDTH)
  R:    Mel Gorman <[email protected]> (CONFIG_NUMA_BALANCING)
 -R:    Daniel Bristot de Oliveira <[email protected]> (SCHED_DEADLINE)
  R:    Valentin Schneider <[email protected]> (TOPOLOGY)
  L:    [email protected]
  S:    Maintained
@@@ -20248,14 -19944,6 +20254,14 @@@ F: include/linux/wait.
  F:    include/uapi/linux/sched.h
  F:    kernel/sched/
  
 +SCIOSENSE ENS160 MULTI-GAS SENSOR DRIVER
 +M:    Gustavo Silva <[email protected]>
 +S:    Maintained
 +F:    drivers/iio/chemical/ens160_core.c
 +F:    drivers/iio/chemical/ens160_i2c.c
 +F:    drivers/iio/chemical/ens160_spi.c
 +F:    drivers/iio/chemical/ens160.h
 +
  SCSI LIBSAS SUBSYSTEM
  R:    John Garry <[email protected]>
  R:    Jason Yan <[email protected]>
@@@ -20378,7 -20066,7 +20384,7 @@@ F:   drivers/media/cec/platform/seco/seco
  F:    drivers/media/cec/platform/seco/seco-cec.h
  
  SECURE COMPUTING
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  R:    Andy Lutomirski <[email protected]>
  R:    Will Drewry <[email protected]>
  S:    Supported
@@@ -20418,7 -20106,6 +20424,7 @@@ SECURE DIGITAL HOST CONTROLLER INTERFAC
  M:    Haibo Chen <[email protected]>
  L:    [email protected]
  L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    drivers/mmc/host/sdhci-esdhc-imx.c
  
@@@ -21027,6 -20714,7 +21033,6 @@@ F:   include/uapi/rdma/rdma_user_rxe.
  
  SOFTLOGIC 6x10 MPEG CODEC
  M:    Bluecherry Maintainers <[email protected]>
 -M:    Anton Sviridenko <[email protected]>
  M:    Andrey Utkin <[email protected]>
  M:    Ismael Luceno <[email protected]>
  L:    [email protected]
@@@ -21122,7 -20810,7 +21128,7 @@@ M:   Sakari Ailus <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/imx258.yaml
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx258.yaml
  F:    drivers/media/i2c/imx258.c
  
  SONY IMX274 SENSOR DRIVER
@@@ -21133,15 -20821,6 +21139,15 @@@ T: git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/i2c/sony,imx274.yaml
  F:    drivers/media/i2c/imx274.c
  
 +SONY IMX283 SENSOR DRIVER
 +M:    Kieran Bingham <[email protected]>
 +M:    Umang Jain <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx283.yaml
 +F:    drivers/media/i2c/imx283.c
 +
  SONY IMX290 SENSOR DRIVER
  M:    Manivannan Sadhasivam <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
  F:    Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.yaml
 -F:    Documentation/userspace-api/media/drivers/st-vgxy61.rst
 -F:    drivers/media/i2c/st-vgxy61.c
 +F:    Documentation/userspace-api/media/drivers/vgxy61.rst
 +F:    drivers/media/i2c/vgxy61.c
  
  ST VL53L0X ToF RANGER(I2C) IIO DRIVER
  M:    Song Qiang <[email protected]>
@@@ -21576,6 -21255,7 +21582,6 @@@ W:   http://wiki.laptop.org/go/DCO
  F:    drivers/staging/olpc_dcon/
  
  STAGING - REALTEK RTL8712U DRIVERS
 -M:    Larry Finger <[email protected]>
  M:    Florian Schilhabel <[email protected]>.
  S:    Odd Fixes
  F:    drivers/staging/rtl8712/
@@@ -21609,9 -21289,9 +21615,9 @@@ F:   drivers/staging
  
  STANDALONE CACHE CONTROLLER DRIVERS
  M:    Conor Dooley <[email protected]>
 -L:    [email protected]
  S:    Maintained
  T:    git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
 +F:    Documentation/devicetree/bindings/cache/
  F:    drivers/cache
  
  STARFIRE/DURALAN NETWORK DRIVER
@@@ -22124,7 -21804,6 +22130,7 @@@ F:   drivers/mfd/syscon.
  SYSTEM CONTROL & POWER/MANAGEMENT INTERFACE (SCPI/SCMI) Message Protocol drivers
  M:    Sudeep Holla <[email protected]>
  R:    Cristian Marussi <[email protected]>
 +L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/firmware/arm,sc[mp]i.yaml
@@@ -22467,13 -22146,7 +22473,13 @@@ TEHUTI ETHERNET DRIVE
  M:    Andy Gospodarek <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    drivers/net/ethernet/tehuti/*
 +F:    drivers/net/ethernet/tehuti/tehuti.*
 +
 +TEHUTI TN40XX ETHERNET DRIVER
 +M:    FUJITA Tomonori <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/tehuti/tn40*
  
  TELECOM CLOCK DRIVER FOR MCPL0010
  M:    Mark Gross <[email protected]>
@@@ -22509,13 -22182,13 +22515,13 @@@ M:        Baojun Xu <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/sound/tas2552.txt
 -F:    Documentation/devicetree/bindings/sound/tas2562.yaml
 -F:    Documentation/devicetree/bindings/sound/tas2770.yaml
 -F:    Documentation/devicetree/bindings/sound/tas27xx.yaml
 +F:    Documentation/devicetree/bindings/sound/ti,tas2562.yaml
 +F:    Documentation/devicetree/bindings/sound/ti,tas2770.yaml
 +F:    Documentation/devicetree/bindings/sound/ti,tas27xx.yaml
  F:    Documentation/devicetree/bindings/sound/ti,pcm1681.yaml
  F:    Documentation/devicetree/bindings/sound/ti,pcm3168a.yaml
  F:    Documentation/devicetree/bindings/sound/ti,tlv320*.yaml
 -F:    Documentation/devicetree/bindings/sound/tlv320adcx140.yaml
 +F:    Documentation/devicetree/bindings/sound/ti,tlv320adcx140.yaml
  F:    Documentation/devicetree/bindings/sound/tlv320aic31xx.txt
  F:    Documentation/devicetree/bindings/sound/tpa6130a2.txt
  F:    include/sound/tas2*.h
@@@ -22713,14 -22386,6 +22719,14 @@@ M: Robert Richter <[email protected]
  S:    Odd Fixes
  F:    drivers/gpio/gpio-thunderx.c
  
 +TI ADS1119 ADC DRIVER
 +M:    Francesco Dolcini <[email protected]>
 +M:    João Paulo Gonçalves <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/iio/adc/ti,ads1119.yaml
 +F:    drivers/iio/adc/ti-ads1119.c
 +
  TI ADS7924 ADC DRIVER
  M:    Hugo Villeneuve <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
 +F:    Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
  F:    drivers/pmdomain/ti/omap_prm.c
  F:    drivers/soc/ti/*
  
  S:    Supported
  F:    drivers/mmc/host/renesas_sdhi*
  F:    drivers/mmc/host/tmio_mmc*
 -F:    include/linux/mfd/tmio.h
 +F:    include/linux/platform_data/tmio.h
  
  TMP513 HARDWARE MONITOR DRIVER
  M:    Eric Tremblay <[email protected]>
@@@ -23021,7 -22685,7 +23027,7 @@@ L:   [email protected] (subsc
  L:    [email protected] (subscribers-only, for developers in Japanese)
  L:    [email protected] (subscribers-only, for users in Japanese)
  S:    Maintained
 -W:    https://tomoyo.osdn.jp/
 +W:    https://tomoyo.sourceforge.net/
  F:    security/tomoyo/
  
  TOPSTAR LAPTOP EXTRAS DRIVER
@@@ -23090,7 -22754,7 +23096,7 @@@ M:   Jarkko Sakkinen <[email protected]
  R:    Jason Gunthorpe <[email protected]>
  L:    [email protected]
  S:    Maintained
 -W:    https://gitlab.com/jarkkojs/linux-tpmdd-test
 +W:    https://codeberg.org/jarkko/linux-tpmdd-test
  Q:    https://patchwork.kernel.org/project/linux-integrity/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git
  F:    Documentation/devicetree/bindings/tpm/
@@@ -23152,6 -22816,7 +23158,6 @@@ F:   kernel/trace/trace_mmiotrace.
  
  TRACING OS NOISE / LATENCY TRACERS
  M:    Steven Rostedt <[email protected]>
 -M:    Daniel Bristot de Oliveira <[email protected]>
  S:    Maintained
  F:    Documentation/trace/hwlat_detector.rst
  F:    Documentation/trace/osnoise-tracer.rst
@@@ -23252,6 -22917,7 +23258,6 @@@ F:   tools/testing/selftests/turbostat
  
  TW5864 VIDEO4LINUX DRIVER
  M:    Bluecherry Maintainers <[email protected]>
 -M:    Anton Sviridenko <[email protected]>
  M:    Andrey Utkin <[email protected]>
  M:    Andrey Utkin <[email protected]>
  L:    [email protected]
@@@ -23314,7 -22980,7 +23320,7 @@@ F:   drivers/block/ublk_drv.
  F:    include/uapi/linux/ublk_cmd.h
  
  UBSAN
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  R:    Marco Elver <[email protected]>
  R:    Andrey Konovalov <[email protected]>
  R:    Andrey Ryabinin <[email protected]>
@@@ -23451,19 -23117,6 +23457,19 @@@ F: drivers/mtd/ubi
  F:    include/linux/mtd/ubi.h
  F:    include/uapi/mtd/ubi-user.h
  
 +UPROBES
 +M:    Masami Hiramatsu <[email protected]>
 +M:    Oleg Nesterov <[email protected]>
 +M:    Peter Zijlstra <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    arch/*/include/asm/uprobes.h
 +F:    arch/*/kernel/probes/uprobes.c
 +F:    arch/*/kernel/uprobes.c
 +F:    include/linux/uprobes.h
 +F:    kernel/events/uprobes.c
 +
  USB "USBNET" DRIVER FRAMEWORK
  M:    Oliver Neukum <[email protected]>
  L:    [email protected]
@@@ -23881,7 -23534,7 +23887,7 @@@ F:   drivers/media/i2c/mt
  F:    drivers/media/i2c/og*
  F:    drivers/media/i2c/ov*
  F:    drivers/media/i2c/s5*
 -F:    drivers/media/i2c/st-vgxy61.c
 +F:    drivers/media/i2c/vgxy61.c
  
  VF610 NAND DRIVER
  M:    Stefan Agner <[email protected]>
@@@ -24000,6 -23653,12 +24006,6 @@@ M:  Kevin Brace <kevinbrace@bracecompute
  S:    Maintained
  F:    drivers/net/ethernet/via/via-rhine.c
  
 -VIA SD/MMC CARD CONTROLLER DRIVER
 -M:    Bruce Chang <[email protected]>
 -M:    Harald Welte <[email protected]>
 -S:    Maintained
 -F:    drivers/mmc/host/via-sdmmc.c
 -
  VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
  M:    Florian Tobias Schandinat <[email protected]>
  L:    [email protected]
@@@ -24212,8 -23871,8 +24218,8 @@@ S:   Maintaine
  F:    drivers/vhost/scsi.c
  
  VIRTIO I2C DRIVER
 -M:    Conghui Chen <[email protected]>
  M:    Viresh Kumar <[email protected]>
 +R:    "Chen, Jian Jun" <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -24323,6 -23982,7 +24329,6 @@@ VMALLO
  M:    Andrew Morton <[email protected]>
  R:    Uladzislau Rezki <[email protected]>
  R:    Christoph Hellwig <[email protected]>
 -R:    Lorenzo Stoakes <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.linux-mm.org
@@@ -25158,7 -24818,7 +25164,7 @@@ F:   drivers/net/hamradio/yam
  F:    include/linux/yam.h
  
  YAMA SECURITY MODULE
 -M:    Kees Cook <keescook@chromium.org>
 +M:    Kees Cook <kees@kernel.org>
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    Documentation/admin-guide/LSM/Yama.rst
@@@ -25296,12 -24956,6 +25302,12 @@@ F: mm/zpool.
  F:    mm/zswap.c
  F:    tools/testing/selftests/cgroup/test_zswap.c
  
 +SENARYTECH AUDIO CODEC DRIVER
 +M:    bo liu <[email protected]>
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
 +F:    sound/pci/hda/patch_senarytech.c
 +
  THE REST
  M:    Linus Torvalds <[email protected]>
  L:    [email protected]
index 56f440a06b2114859ea1259a22de019851bd0bde,a028ea312378995935c53d40312ca015c225f5ab..6c6d11536b42ec6e878db8d355c17994c2500d7b
@@@ -207,6 -207,7 +207,6 @@@ if ARCH_NX
  
  config ARCH_LAYERSCAPE
        bool "Freescale Layerscape SoC family"
 -      select EDAC_SUPPORT
        help
          This enables support for the Freescale Layerscape SoC family.
  
@@@ -266,7 -267,6 +266,7 @@@ config ARCH_QCO
        bool "Qualcomm Platforms"
        select GPIOLIB
        select PINCTRL
 +      select HAVE_PWRCTL if PCI
        help
          This enables support for the ARMv8 based Qualcomm chipsets.
  
@@@ -309,11 -309,8 +309,10 @@@ config ARCH_STM3
        select GPIOLIB
        select PINCTRL
        select PINCTRL_STM32MP257
-       select STM32_EXTI
        select ARM_SMC_MBOX
        select ARM_SCMI_PROTOCOL
 +      select REGULATOR
 +      select REGULATOR_ARM_SCMI
        select COMMON_CLK_SCMI
        select STM32_FIREWALL
        help
index b16a75c94b8bd8de2945ff8da60926135c85b50e,a0883d5445b5e7dec026fe13fa0c7bf9fe02754a..6100819681b5cb6cbc7deb0509c7b01280035f14
@@@ -567,14 -567,12 +567,14 @@@ struct device_node *pcibios_get_phb_of_
  
  static int um_pci_init_vqs(struct um_pci_device *dev)
  {
 +      struct virtqueue_info vqs_info[] = {
 +              { "cmd", um_pci_cmd_vq_cb },
 +              { "irq", um_pci_irq_vq_cb },
 +      };
        struct virtqueue *vqs[2];
 -      static const char *const names[2] = { "cmd", "irq" };
 -      vq_callback_t *cbs[2] = { um_pci_cmd_vq_cb, um_pci_irq_vq_cb };
        int err, i;
  
 -      err = virtio_find_vqs(dev->vdev, 2, vqs, cbs, names, NULL);
 +      err = virtio_find_vqs(dev->vdev, 2, vqs, vqs_info, NULL);
        if (err)
                return err;
  
@@@ -988,6 -986,11 +988,11 @@@ static struct resource virt_platform_re
  
  static int __init um_pci_init(void)
  {
+       struct irq_domain_info inner_domain_info = {
+               .size           = MAX_MSI_VECTORS,
+               .hwirq_max      = MAX_MSI_VECTORS,
+               .ops            = &um_pci_inner_domain_ops,
+       };
        int err, i;
  
        WARN_ON(logic_iomem_add_region(&virt_cfgspace_resource,
                goto free;
        }
  
-       um_pci_inner_domain = __irq_domain_add(um_pci_fwnode, MAX_MSI_VECTORS,
-                                              MAX_MSI_VECTORS, 0,
-                                              &um_pci_inner_domain_ops, NULL);
-       if (!um_pci_inner_domain) {
-               err = -ENOMEM;
+       inner_domain_info.fwnode = um_pci_fwnode;
+       um_pci_inner_domain = irq_domain_instantiate(&inner_domain_info);
+       if (IS_ERR(um_pci_inner_domain)) {
+               err = PTR_ERR(um_pci_inner_domain);
                goto free;
        }
  
                goto free;
        return 0;
  free:
-       if (um_pci_inner_domain)
+       if (!IS_ERR_OR_NULL(um_pci_inner_domain))
                irq_domain_remove(um_pci_inner_domain);
        if (um_pci_fwnode)
                irq_domain_free_fwnode(um_pci_fwnode);
index b04b684f31904ee388b257a8c724b2232962698d,915713c0e9b7de715fd2469906ef01b9bb283914..9b6b71a2ffb5461396dcecb1232db99884885e30
@@@ -90,8 -90,7 +90,8 @@@ static int map_gicc_mpidr(struct acpi_s
        struct acpi_madt_generic_interrupt *gicc =
            container_of(entry, struct acpi_madt_generic_interrupt, header);
  
 -      if (!acpi_gicc_is_usable(gicc))
 +      if (!(gicc->flags &
 +            (ACPI_MADT_ENABLED | ACPI_MADT_GICC_ONLINE_CAPABLE)))
                return -ENODEV;
  
        /* device_declaration means Device object in DSDT, in the
@@@ -216,6 -215,21 +216,21 @@@ phys_cpuid_t __init acpi_map_madt_entry
        return rv;
  }
  
+ int __init acpi_get_madt_revision(void)
+ {
+       struct acpi_table_header *madt = NULL;
+       int revision;
+       if (ACPI_FAILURE(acpi_get_table(ACPI_SIG_MADT, 0, &madt)))
+               return -EINVAL;
+       revision = madt->revision;
+       acpi_put_table(madt);
+       return revision;
+ }
  static phys_cpuid_t map_mat_entry(acpi_handle handle, int type, u32 acpi_id)
  {
        struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
index 42e63272154e018d72185bf1d3de8d25253ade34,c23a64fcf9b3cf792049b36c43c2a23a65d1873a..105d116b4ea0c7379782a9af758bc2c4e98d0e88
@@@ -59,7 -59,7 +59,7 @@@ static u32 lpi_id_bits
  #define LPI_PROPBASE_SZ               ALIGN(BIT(LPI_NRBITS), SZ_64K)
  #define LPI_PENDBASE_SZ               ALIGN(BIT(LPI_NRBITS) / 8, SZ_64K)
  
 -#define LPI_PROP_DEFAULT_PRIO GICD_INT_DEF_PRI
 +static u8 __ro_after_init lpi_prop_prio;
  
  /*
   * Collection structure - just an ID, and a redistributor address to
@@@ -1317,7 -1317,6 +1317,6 @@@ static void its_send_vmovp(struct its_v
  {
        struct its_cmd_desc desc = {};
        struct its_node *its;
-       unsigned long flags;
        int col_id = vpe->col_idx;
  
        desc.its_vmovp_cmd.vpe = vpe;
                return;
        }
  
+       /*
+        * Protect against concurrent updates of the mapping state on
+        * individual VMs.
+        */
+       guard(raw_spinlock_irqsave)(&vpe->its_vm->vmapp_lock);
        /*
         * Yet another marvel of the architecture. If using the
         * its_list "feature", we need to make sure that all ITSs
         *
         * Wall <-- Head.
         */
-       raw_spin_lock_irqsave(&vmovp_lock, flags);
+       guard(raw_spinlock)(&vmovp_lock);
        desc.its_vmovp_cmd.seq_num = vmovp_seq_num++;
        desc.its_vmovp_cmd.its_list = get_its_list(vpe->its_vm);
  
                desc.its_vmovp_cmd.col = &its->collections[col_id];
                its_send_single_vcommand(its, its_build_vmovp_cmd, &desc);
        }
-       raw_spin_unlock_irqrestore(&vmovp_lock, flags);
  }
  
  static void its_send_vinvall(struct its_node *its, struct its_vpe *vpe)
@@@ -1791,12 -1793,10 +1793,10 @@@ static bool gic_requires_eager_mapping(
  
  static void its_map_vm(struct its_node *its, struct its_vm *vm)
  {
-       unsigned long flags;
        if (gic_requires_eager_mapping())
                return;
  
-       raw_spin_lock_irqsave(&vmovp_lock, flags);
+       guard(raw_spinlock_irqsave)(&vm->vmapp_lock);
  
        /*
         * If the VM wasn't mapped yet, iterate over the vpes and get
  
                for (i = 0; i < vm->nr_vpes; i++) {
                        struct its_vpe *vpe = vm->vpes[i];
-                       struct irq_data *d = irq_get_irq_data(vpe->irq);
  
-                       /* Map the VPE to the first possible CPU */
-                       vpe->col_idx = cpumask_first(cpu_online_mask);
-                       its_send_vmapp(its, vpe, true);
+                       scoped_guard(raw_spinlock, &vpe->vpe_lock)
+                               its_send_vmapp(its, vpe, true);
                        its_send_vinvall(its, vpe);
-                       irq_data_update_effective_affinity(d, cpumask_of(vpe->col_idx));
                }
        }
-       raw_spin_unlock_irqrestore(&vmovp_lock, flags);
  }
  
  static void its_unmap_vm(struct its_node *its, struct its_vm *vm)
  {
-       unsigned long flags;
        /* Not using the ITS list? Everything is always mapped. */
        if (gic_requires_eager_mapping())
                return;
  
-       raw_spin_lock_irqsave(&vmovp_lock, flags);
+       guard(raw_spinlock_irqsave)(&vm->vmapp_lock);
  
        if (!--vm->vlpi_count[its->list_nr]) {
                int i;
  
-               for (i = 0; i < vm->nr_vpes; i++)
+               for (i = 0; i < vm->nr_vpes; i++) {
+                       guard(raw_spinlock)(&vm->vpes[i]->vpe_lock);
                        its_send_vmapp(its, vm->vpes[i], false);
+               }
        }
-       raw_spin_unlock_irqrestore(&vmovp_lock, flags);
  }
  
  static int its_vlpi_map(struct irq_data *d, struct its_cmd_info *info)
  {
        struct its_device *its_dev = irq_data_get_irq_chip_data(d);
        u32 event = its_get_event_id(d);
 -      int ret = 0;
  
        if (!info->map)
                return -EINVAL;
  
 -      raw_spin_lock(&its_dev->event_map.vlpi_lock);
 -
        if (!its_dev->event_map.vm) {
                struct its_vlpi_map *maps;
  
                maps = kcalloc(its_dev->event_map.nr_lpis, sizeof(*maps),
                               GFP_ATOMIC);
 -              if (!maps) {
 -                      ret = -ENOMEM;
 -                      goto out;
 -              }
 +              if (!maps)
 +                      return -ENOMEM;
  
                its_dev->event_map.vm = info->map->vm;
                its_dev->event_map.vlpi_maps = maps;
        } else if (its_dev->event_map.vm != info->map->vm) {
 -              ret = -EINVAL;
 -              goto out;
 +              return -EINVAL;
        }
  
        /* Get our private copy of the mapping information */
                its_dev->event_map.nr_vlpis++;
        }
  
 -out:
 -      raw_spin_unlock(&its_dev->event_map.vlpi_lock);
 -      return ret;
 +      return 0;
  }
  
  static int its_vlpi_get(struct irq_data *d, struct its_cmd_info *info)
  {
        struct its_device *its_dev = irq_data_get_irq_chip_data(d);
        struct its_vlpi_map *map;
 -      int ret = 0;
 -
 -      raw_spin_lock(&its_dev->event_map.vlpi_lock);
  
        map = get_vlpi_map(d);
  
 -      if (!its_dev->event_map.vm || !map) {
 -              ret = -EINVAL;
 -              goto out;
 -      }
 +      if (!its_dev->event_map.vm || !map)
 +              return -EINVAL;
  
        /* Copy our mapping information to the incoming request */
        *info->map = *map;
  
 -out:
 -      raw_spin_unlock(&its_dev->event_map.vlpi_lock);
 -      return ret;
 +      return 0;
  }
  
  static int its_vlpi_unmap(struct irq_data *d)
  {
        struct its_device *its_dev = irq_data_get_irq_chip_data(d);
        u32 event = its_get_event_id(d);
 -      int ret = 0;
 -
 -      raw_spin_lock(&its_dev->event_map.vlpi_lock);
  
 -      if (!its_dev->event_map.vm || !irqd_is_forwarded_to_vcpu(d)) {
 -              ret = -EINVAL;
 -              goto out;
 -      }
 +      if (!its_dev->event_map.vm || !irqd_is_forwarded_to_vcpu(d))
 +              return -EINVAL;
  
        /* Drop the virtual mapping */
        its_send_discard(its_dev, event);
        /* and restore the physical one */
        irqd_clr_forwarded_to_vcpu(d);
        its_send_mapti(its_dev, d->hwirq, event);
 -      lpi_update_config(d, 0xff, (LPI_PROP_DEFAULT_PRIO |
 +      lpi_update_config(d, 0xff, (lpi_prop_prio |
                                    LPI_PROP_ENABLED |
                                    LPI_PROP_GROUP1));
  
                kfree(its_dev->event_map.vlpi_maps);
        }
  
 -out:
 -      raw_spin_unlock(&its_dev->event_map.vlpi_lock);
 -      return ret;
 +      return 0;
  }
  
  static int its_vlpi_prop_update(struct irq_data *d, struct its_cmd_info *info)
@@@ -1970,8 -1986,6 +1964,8 @@@ static int its_irq_set_vcpu_affinity(st
        if (!is_v4(its_dev->its))
                return -EINVAL;
  
 +      guard(raw_spinlock_irq)(&its_dev->event_map.vlpi_lock);
 +
        /* Unmap request? */
        if (!info)
                return its_vlpi_unmap(d);
@@@ -2181,8 -2195,8 +2175,8 @@@ static void its_lpi_free(unsigned long 
  
  static void gic_reset_prop_table(void *va)
  {
 -      /* Priority 0xa0, Group-1, disabled */
 -      memset(va, LPI_PROP_DEFAULT_PRIO | LPI_PROP_GROUP1, LPI_PROPBASE_SZ);
 +      /* Regular IRQ priority, Group-1, disabled */
 +      memset(va, lpi_prop_prio | LPI_PROP_GROUP1, LPI_PROPBASE_SZ);
  
        /* Make sure the GIC will observe the written configuration */
        gic_flush_dcache_to_poc(va, LPI_PROPBASE_SZ);
@@@ -3926,6 -3940,8 +3920,8 @@@ static void its_vpe_invall(struct its_v
  {
        struct its_node *its;
  
+       guard(raw_spinlock_irqsave)(&vpe->its_vm->vmapp_lock);
        list_for_each_entry(its, &its_nodes, entry) {
                if (!is_v4(its))
                        continue;
@@@ -4531,6 -4547,7 +4527,7 @@@ static int its_vpe_irq_domain_alloc(str
        vm->db_lpi_base = base;
        vm->nr_db_lpis = nr_ids;
        vm->vprop_page = vprop_page;
+       raw_spin_lock_init(&vm->vmapp_lock);
  
        if (gic_rdists->has_rvpeid)
                irqchip = &its_vpe_4_1_irq_chip;
@@@ -4562,6 -4579,10 +4559,10 @@@ static int its_vpe_irq_domain_activate(
        struct its_vpe *vpe = irq_data_get_irq_chip_data(d);
        struct its_node *its;
  
+       /* Map the VPE to the first possible CPU */
+       vpe->col_idx = cpumask_first(cpu_online_mask);
+       irq_data_update_effective_affinity(d, cpumask_of(vpe->col_idx));
        /*
         * If we use the list map, we issue VMAPP on demand... Unless
         * we're on a GICv4.1 and we eagerly map the VPE on all ITSs
        if (!gic_requires_eager_mapping())
                return 0;
  
-       /* Map the VPE to the first possible CPU */
-       vpe->col_idx = cpumask_first(cpu_online_mask);
        list_for_each_entry(its, &its_nodes, entry) {
                if (!is_v4(its))
                        continue;
                its_send_vinvall(its, vpe);
        }
  
-       irq_data_update_effective_affinity(d, cpumask_of(vpe->col_idx));
        return 0;
  }
  
@@@ -5580,6 -5596,10 +5576,10 @@@ static int __init gic_acpi_parse_madt_i
                goto node_err;
        }
  
+       if (acpi_get_madt_revision() >= 7 &&
+           (its_entry->flags & ACPI_MADT_ITS_NON_COHERENT))
+               its->flags |= ITS_FLAGS_FORCE_NON_SHAREABLE;
        err = its_probe_one(its);
        if (!err)
                return 0;
@@@ -5650,7 -5670,7 +5650,7 @@@ int __init its_lpi_memreserve_init(void
  }
  
  int __init its_init(struct fwnode_handle *handle, struct rdists *rdists,
 -                  struct irq_domain *parent_domain)
 +                  struct irq_domain *parent_domain, u8 irq_prio)
  {
        struct device_node *of_node;
        struct its_node *its;
  
        gic_rdists = rdists;
  
 +      lpi_prop_prio = irq_prio;
        its_parent = parent_domain;
        of_node = to_of_node(handle);
        if (of_node)
index 6393f3d780e9918837cbbfcdd8611bf6e996b7dc,7c12d11513c61dc009535b892beebd0f9e9eabb1..c19083bfb94323715ea4961d74fa5683adddf286
@@@ -12,7 -12,6 +12,7 @@@
  #include <linux/delay.h>
  #include <linux/interrupt.h>
  #include <linux/irqdomain.h>
 +#include <linux/kernel.h>
  #include <linux/kstrtox.h>
  #include <linux/of.h>
  #include <linux/of_address.h>
@@@ -25,7 -24,6 +25,7 @@@
  #include <linux/irqchip.h>
  #include <linux/irqchip/arm-gic-common.h>
  #include <linux/irqchip/arm-gic-v3.h>
 +#include <linux/irqchip/arm-gic-v3-prio.h>
  #include <linux/irqchip/irq-partition-percpu.h>
  #include <linux/bitfield.h>
  #include <linux/bits.h>
@@@ -38,8 -36,7 +38,8 @@@
  
  #include "irq-gic-common.h"
  
 -#define GICD_INT_NMI_PRI      (GICD_INT_DEF_PRI & ~0x80)
 +static u8 dist_prio_irq __ro_after_init = GICV3_PRIO_IRQ;
 +static u8 dist_prio_nmi __ro_after_init = GICV3_PRIO_NMI;
  
  #define FLAGS_WORKAROUND_GICR_WAKER_MSM8996   (1ULL << 0)
  #define FLAGS_WORKAROUND_CAVIUM_ERRATUM_38539 (1ULL << 1)
@@@ -47,8 -44,6 +47,8 @@@
  
  #define GIC_IRQ_TYPE_PARTITION        (GIC_IRQ_TYPE_LPI + 1)
  
 +static struct cpumask broken_rdists __read_mostly __maybe_unused;
 +
  struct redist_region {
        void __iomem            *redist_base;
        phys_addr_t             phys_base;
@@@ -113,96 -108,29 +113,96 @@@ static DEFINE_STATIC_KEY_TRUE(supports_
   */
  static DEFINE_STATIC_KEY_FALSE(supports_pseudo_nmis);
  
 -DEFINE_STATIC_KEY_FALSE(gic_nonsecure_priorities);
 -EXPORT_SYMBOL(gic_nonsecure_priorities);
 +static u32 gic_get_pribits(void)
 +{
 +      u32 pribits;
  
 -/*
 - * When the Non-secure world has access to group 0 interrupts (as a
 - * consequence of SCR_EL3.FIQ == 0), reading the ICC_RPR_EL1 register will
 - * return the Distributor's view of the interrupt priority.
 - *
 - * When GIC security is enabled (GICD_CTLR.DS == 0), the interrupt priority
 - * written by software is moved to the Non-secure range by the Distributor.
 - *
 - * If both are true (which is when gic_nonsecure_priorities gets enabled),
 - * we need to shift down the priority programmed by software to match it
 - * against the value returned by ICC_RPR_EL1.
 - */
 -#define GICD_INT_RPR_PRI(priority)                                    \
 -      ({                                                              \
 -              u32 __priority = (priority);                            \
 -              if (static_branch_unlikely(&gic_nonsecure_priorities))  \
 -                      __priority = 0x80 | (__priority >> 1);          \
 -                                                                      \
 -              __priority;                                             \
 -      })
 +      pribits = gic_read_ctlr();
 +      pribits &= ICC_CTLR_EL1_PRI_BITS_MASK;
 +      pribits >>= ICC_CTLR_EL1_PRI_BITS_SHIFT;
 +      pribits++;
 +
 +      return pribits;
 +}
 +
 +static bool gic_has_group0(void)
 +{
 +      u32 val;
 +      u32 old_pmr;
 +
 +      old_pmr = gic_read_pmr();
 +
 +      /*
 +       * Let's find out if Group0 is under control of EL3 or not by
 +       * setting the highest possible, non-zero priority in PMR.
 +       *
 +       * If SCR_EL3.FIQ is set, the priority gets shifted down in
 +       * order for the CPU interface to set bit 7, and keep the
 +       * actual priority in the non-secure range. In the process, it
 +       * looses the least significant bit and the actual priority
 +       * becomes 0x80. Reading it back returns 0, indicating that
 +       * we're don't have access to Group0.
 +       */
 +      gic_write_pmr(BIT(8 - gic_get_pribits()));
 +      val = gic_read_pmr();
 +
 +      gic_write_pmr(old_pmr);
 +
 +      return val != 0;
 +}
 +
 +static inline bool gic_dist_security_disabled(void)
 +{
 +      return readl_relaxed(gic_data.dist_base + GICD_CTLR) & GICD_CTLR_DS;
 +}
 +
 +static bool cpus_have_security_disabled __ro_after_init;
 +static bool cpus_have_group0 __ro_after_init;
 +
 +static void __init gic_prio_init(void)
 +{
 +      cpus_have_security_disabled = gic_dist_security_disabled();
 +      cpus_have_group0 = gic_has_group0();
 +
 +      /*
 +       * How priority values are used by the GIC depends on two things:
 +       * the security state of the GIC (controlled by the GICD_CTRL.DS bit)
 +       * and if Group 0 interrupts can be delivered to Linux in the non-secure
 +       * world as FIQs (controlled by the SCR_EL3.FIQ bit). These affect the
 +       * way priorities are presented in ICC_PMR_EL1 and in the distributor:
 +       *
 +       * GICD_CTRL.DS | SCR_EL3.FIQ | ICC_PMR_EL1 | Distributor
 +       * -------------------------------------------------------
 +       *      1       |      -      |  unchanged  |  unchanged
 +       * -------------------------------------------------------
 +       *      0       |      1      |  non-secure |  non-secure
 +       * -------------------------------------------------------
 +       *      0       |      0      |  unchanged  |  non-secure
 +       *
 +       * In the non-secure view reads and writes are modified:
 +       *
 +       * - A value written is right-shifted by one and the MSB is set,
 +       *   forcing the priority into the non-secure range.
 +       *
 +       * - A value read is left-shifted by one.
 +       *
 +       * In the first two cases, where ICC_PMR_EL1 and the interrupt priority
 +       * are both either modified or unchanged, we can use the same set of
 +       * priorities.
 +       *
 +       * In the last case, where only the interrupt priorities are modified to
 +       * be in the non-secure range, we program the non-secure values into
 +       * the distributor to match the PMR values we want.
 +       */
 +      if (cpus_have_group0 & !cpus_have_security_disabled) {
 +              dist_prio_irq = __gicv3_prio_to_ns(dist_prio_irq);
 +              dist_prio_nmi = __gicv3_prio_to_ns(dist_prio_nmi);
 +      }
 +
 +      pr_info("GICD_CTRL.DS=%d, SCR_EL3.FIQ=%d\n",
 +              cpus_have_security_disabled,
 +              !cpus_have_group0);
 +}
  
  /* rdist_nmi_refs[n] == number of cpus having the rdist interrupt n set as NMI */
  static refcount_t *rdist_nmi_refs;
@@@ -628,7 -556,7 +628,7 @@@ static int gic_irq_nmi_setup(struct irq
                desc->handle_irq = handle_fasteoi_nmi;
        }
  
 -      gic_irq_set_prio(d, GICD_INT_NMI_PRI);
 +      gic_irq_set_prio(d, dist_prio_nmi);
  
        return 0;
  }
@@@ -663,7 -591,7 +663,7 @@@ static void gic_irq_nmi_teardown(struc
                desc->handle_irq = handle_fasteoi_irq;
        }
  
 -      gic_irq_set_prio(d, GICD_INT_DEF_PRI);
 +      gic_irq_set_prio(d, dist_prio_irq);
  }
  
  static bool gic_arm64_erratum_2941627_needed(struct irq_data *d)
@@@ -742,7 -670,7 +742,7 @@@ static int gic_set_type(struct irq_dat
  
        offset = convert_offset_index(d, GICD_ICFGR, &index);
  
 -      ret = gic_configure_irq(index, type, base + offset, NULL);
 +      ret = gic_configure_irq(index, type, base + offset);
        if (ret && (range == PPI_RANGE || range == EPPI_RANGE)) {
                /* Misconfigured PPIs are usually not fatal */
                pr_warn("GIC: PPI INTID%ld is secure or misconfigured\n", irq);
@@@ -825,7 -753,7 +825,7 @@@ static bool gic_rpr_is_nmi_prio(void
        if (!gic_supports_nmi())
                return false;
  
 -      return unlikely(gic_read_rpr() == GICD_INT_RPR_PRI(GICD_INT_NMI_PRI));
 +      return unlikely(gic_read_rpr() == GICV3_PRIO_NMI);
  }
  
  static bool gic_irqnr_is_special(u32 irqnr)
@@@ -938,6 -866,44 +938,6 @@@ static asmlinkage void __exception_irq_
                __gic_handle_irq_from_irqson(regs);
  }
  
 -static u32 gic_get_pribits(void)
 -{
 -      u32 pribits;
 -
 -      pribits = gic_read_ctlr();
 -      pribits &= ICC_CTLR_EL1_PRI_BITS_MASK;
 -      pribits >>= ICC_CTLR_EL1_PRI_BITS_SHIFT;
 -      pribits++;
 -
 -      return pribits;
 -}
 -
 -static bool gic_has_group0(void)
 -{
 -      u32 val;
 -      u32 old_pmr;
 -
 -      old_pmr = gic_read_pmr();
 -
 -      /*
 -       * Let's find out if Group0 is under control of EL3 or not by
 -       * setting the highest possible, non-zero priority in PMR.
 -       *
 -       * If SCR_EL3.FIQ is set, the priority gets shifted down in
 -       * order for the CPU interface to set bit 7, and keep the
 -       * actual priority in the non-secure range. In the process, it
 -       * looses the least significant bit and the actual priority
 -       * becomes 0x80. Reading it back returns 0, indicating that
 -       * we're don't have access to Group0.
 -       */
 -      gic_write_pmr(BIT(8 - gic_get_pribits()));
 -      val = gic_read_pmr();
 -
 -      gic_write_pmr(old_pmr);
 -
 -      return val != 0;
 -}
 -
  static void __init gic_dist_init(void)
  {
        unsigned int i;
                writel_relaxed(0, base + GICD_ICFGRnE + i / 4);
  
        for (i = 0; i < GIC_ESPI_NR; i += 4)
 -              writel_relaxed(GICD_INT_DEF_PRI_X4, base + GICD_IPRIORITYRnE + i);
 +              writel_relaxed(REPEAT_BYTE_U32(dist_prio_irq),
 +                             base + GICD_IPRIORITYRnE + i);
  
        /* Now do the common stuff */
 -      gic_dist_config(base, GIC_LINE_NR, NULL);
 +      gic_dist_config(base, GIC_LINE_NR, dist_prio_irq);
  
        val = GICD_CTLR_ARE_NS | GICD_CTLR_ENABLE_G1A | GICD_CTLR_ENABLE_G1;
        if (gic_data.rdists.gicd_typer2 & GICD_TYPER2_nASSGIcap) {
@@@ -1154,6 -1119,12 +1154,6 @@@ static void gic_update_rdist_properties
                        gic_data.rdists.has_vpend_valid_dirty ? "Valid+Dirty " : "");
  }
  
 -/* Check whether it's single security state view */
 -static inline bool gic_dist_security_disabled(void)
 -{
 -      return readl_relaxed(gic_data.dist_base + GICD_CTLR) & GICD_CTLR_DS;
 -}
 -
  static void gic_cpu_sys_reg_init(void)
  {
        int i, cpu = smp_processor_id();
                write_gicreg(DEFAULT_PMR_VALUE, ICC_PMR_EL1);
        } else if (gic_supports_nmi()) {
                /*
 -               * Mismatch configuration with boot CPU, the system is likely
 -               * to die as interrupt masking will not work properly on all
 -               * CPUs
 +               * Check that all CPUs use the same priority space.
                 *
 -               * The boot CPU calls this function before enabling NMI support,
 -               * and as a result we'll never see this warning in the boot path
 -               * for that CPU.
 +               * If there's a mismatch with the boot CPU, the system is
 +               * likely to die as interrupt masking will not work properly on
 +               * all CPUs.
                 */
 -              if (static_branch_unlikely(&gic_nonsecure_priorities))
 -                      WARN_ON(!group0 || gic_dist_security_disabled());
 -              else
 -                      WARN_ON(group0 && !gic_dist_security_disabled());
 +              WARN_ON(group0 != cpus_have_group0);
 +              WARN_ON(gic_dist_security_disabled() != cpus_have_security_disabled);
        }
  
        /*
@@@ -1307,8 -1282,7 +1307,8 @@@ static void gic_cpu_init(void
        for (i = 0; i < gic_data.ppi_nr + SGI_NR; i += 32)
                writel_relaxed(~0, rbase + GICR_IGROUPR0 + i / 8);
  
 -      gic_cpu_config(rbase, gic_data.ppi_nr + SGI_NR, gic_redist_wait_for_rwp);
 +      gic_cpu_config(rbase, gic_data.ppi_nr + SGI_NR, dist_prio_irq);
 +      gic_redist_wait_for_rwp();
  
        /* initialise system registers */
        gic_cpu_sys_reg_init();
  #define MPIDR_TO_SGI_RS(mpidr)        (MPIDR_RS(mpidr) << ICC_SGI1R_RS_SHIFT)
  #define MPIDR_TO_SGI_CLUSTER_ID(mpidr)        ((mpidr) & ~0xFUL)
  
 +/*
 + * gic_starting_cpu() is called after the last point where cpuhp is allowed
 + * to fail. So pre check for problems earlier.
 + */
 +static int gic_check_rdist(unsigned int cpu)
 +{
 +      if (cpumask_test_cpu(cpu, &broken_rdists))
 +              return -EINVAL;
 +
 +      return 0;
 +}
 +
  static int gic_starting_cpu(unsigned int cpu)
  {
        gic_cpu_init();
@@@ -1422,10 -1384,6 +1422,10 @@@ static void __init gic_smp_init(void
        };
        int base_sgi;
  
 +      cpuhp_setup_state_nocalls(CPUHP_BP_PREPARE_DYN,
 +                                "irqchip/arm/gicv3:checkrdist",
 +                                gic_check_rdist, NULL);
 +
        cpuhp_setup_state_nocalls(CPUHP_AP_IRQ_GIC_STARTING,
                                  "irqchip/arm/gicv3:starting",
                                  gic_starting_cpu, NULL);
@@@ -1990,6 -1948,36 +1990,6 @@@ static void gic_enable_nmi_support(void
        pr_info("Pseudo-NMIs enabled using %s ICC_PMR_EL1 synchronisation\n",
                gic_has_relaxed_pmr_sync() ? "relaxed" : "forced");
  
 -      /*
 -       * How priority values are used by the GIC depends on two things:
 -       * the security state of the GIC (controlled by the GICD_CTRL.DS bit)
 -       * and if Group 0 interrupts can be delivered to Linux in the non-secure
 -       * world as FIQs (controlled by the SCR_EL3.FIQ bit). These affect the
 -       * ICC_PMR_EL1 register and the priority that software assigns to
 -       * interrupts:
 -       *
 -       * GICD_CTRL.DS | SCR_EL3.FIQ | ICC_PMR_EL1 | Group 1 priority
 -       * -----------------------------------------------------------
 -       *      1       |      -      |  unchanged  |    unchanged
 -       * -----------------------------------------------------------
 -       *      0       |      1      |  non-secure |    non-secure
 -       * -----------------------------------------------------------
 -       *      0       |      0      |  unchanged  |    non-secure
 -       *
 -       * where non-secure means that the value is right-shifted by one and the
 -       * MSB bit set, to make it fit in the non-secure priority range.
 -       *
 -       * In the first two cases, where ICC_PMR_EL1 and the interrupt priority
 -       * are both either modified or unchanged, we can use the same set of
 -       * priorities.
 -       *
 -       * In the last case, where only the interrupt priorities are modified to
 -       * be in the non-secure range, we use a different PMR value to mask IRQs
 -       * and the rest of the values that we use remain unchanged.
 -       */
 -      if (gic_has_group0() && !gic_dist_security_disabled())
 -              static_branch_enable(&gic_nonsecure_priorities);
 -
        static_branch_enable(&supports_pseudo_nmis);
  
        if (static_branch_likely(&supports_deactivate_key))
@@@ -2070,7 -2058,6 +2070,7 @@@ static int __init gic_init_bases(phys_a
  
        gic_update_rdist_properties();
  
 +      gic_prio_init();
        gic_dist_init();
        gic_cpu_init();
        gic_enable_nmi_support();
        gic_cpu_pm_init();
  
        if (gic_dist_supports_lpis()) {
 -              its_init(handle, &gic_data.rdists, gic_data.domain);
 +              its_init(handle, &gic_data.rdists, gic_data.domain, dist_prio_irq);
                its_cpu_init();
                its_lpi_memreserve_init();
        } else {
@@@ -2203,11 -2190,10 +2203,10 @@@ out_put_node
        of_node_put(parts_node);
  }
  
- static void __init gic_of_setup_kvm_info(struct device_node *node)
+ static void __init gic_of_setup_kvm_info(struct device_node *node, u32 nr_redist_regions)
  {
        int ret;
        struct resource r;
-       u32 gicv_idx;
  
        gic_v3_kvm_info.type = GIC_V3;
  
        if (!gic_v3_kvm_info.maint_irq)
                return;
  
-       if (of_property_read_u32(node, "#redistributor-regions",
-                                &gicv_idx))
-               gicv_idx = 1;
-       gicv_idx += 3;  /* Also skip GICD, GICC, GICH */
-       ret = of_address_to_resource(node, gicv_idx, &r);
+       /* Also skip GICD, GICC, GICH */
+       ret = of_address_to_resource(node, nr_redist_regions + 3, &r);
        if (!ret)
                gic_v3_kvm_info.vcpu = r;
  
@@@ -2310,7 -2292,7 +2305,7 @@@ static int __init gic_of_init(struct de
        gic_populate_ppi_partitions(node);
  
        if (static_branch_likely(&supports_deactivate_key))
-               gic_of_setup_kvm_info(node);
+               gic_of_setup_kvm_info(node, nr_redist_regions);
        return 0;
  
  out_unmap_rdist:
@@@ -2362,6 -2344,11 +2357,11 @@@ gic_acpi_parse_madt_redist(union acpi_s
                pr_err("Couldn't map GICR region @%llx\n", redist->base_address);
                return -ENOMEM;
        }
+       if (acpi_get_madt_revision() >= 7 &&
+           (redist->flags & ACPI_MADT_GICR_NON_COHERENT))
+               gic_data.rdists.flags |= RDIST_FLAGS_FORCE_NON_SHAREABLE;
        gic_request_region(redist->base_address, redist->length, "GICR");
  
        gic_acpi_register_redist(redist->base_address, redist_base);
@@@ -2378,30 -2365,18 +2378,34 @@@ gic_acpi_parse_madt_gicc(union acpi_sub
        u32 size = reg == GIC_PIDR2_ARCH_GICv4 ? SZ_64K * 4 : SZ_64K * 2;
        void __iomem *redist_base;
  
 -      if (!acpi_gicc_is_usable(gicc))
 +      /* Neither enabled or online capable means it doesn't exist, skip it */
 +      if (!(gicc->flags & (ACPI_MADT_ENABLED | ACPI_MADT_GICC_ONLINE_CAPABLE)))
 +              return 0;
 +
 +      /*
 +       * Capable but disabled CPUs can be brought online later. What about
 +       * the redistributor? ACPI doesn't want to say!
 +       * Virtual hotplug systems can use the MADT's "always-on" GICR entries.
 +       * Otherwise, prevent such CPUs from being brought online.
 +       */
 +      if (!(gicc->flags & ACPI_MADT_ENABLED)) {
 +              int cpu = get_cpu_for_acpi_id(gicc->uid);
 +
 +              pr_warn("CPU %u's redistributor is inaccessible: this CPU can't be brought online\n", cpu);
 +              if (cpu >= 0)
 +                      cpumask_set_cpu(cpu, &broken_rdists);
                return 0;
 +      }
  
        redist_base = ioremap(gicc->gicr_base_address, size);
        if (!redist_base)
                return -ENOMEM;
        gic_request_region(gicc->gicr_base_address, size, "GICR");
  
+       if (acpi_get_madt_revision() >= 7 &&
+           (gicc->flags & ACPI_MADT_GICC_NON_COHERENT))
+               gic_data.rdists.flags |= RDIST_FLAGS_FORCE_NON_SHAREABLE;
        gic_acpi_register_redist(gicc->gicr_base_address, redist_base);
        return 0;
  }
@@@ -2442,15 -2417,21 +2446,15 @@@ static int __init gic_acpi_match_gicc(u
  
        /*
         * If GICC is enabled and has valid gicr base address, then it means
 -       * GICR base is presented via GICC
 +       * GICR base is presented via GICC. The redistributor is only known to
 +       * be accessible if the GICC is marked as enabled. If this bit is not
 +       * set, we'd need to add the redistributor at runtime, which isn't
 +       * supported.
         */
 -      if (acpi_gicc_is_usable(gicc) && gicc->gicr_base_address) {
 +      if (gicc->flags & ACPI_MADT_ENABLED && gicc->gicr_base_address)
                acpi_data.enabled_rdists++;
 -              return 0;
 -      }
  
 -      /*
 -       * It's perfectly valid firmware can pass disabled GICC entry, driver
 -       * should not treat as errors, skip the entry instead of probe fail.
 -       */
 -      if (!acpi_gicc_is_usable(gicc))
 -              return 0;
 -
 -      return -ENODEV;
 +      return 0;
  }
  
  static int __init gic_acpi_count_gicr_regions(void)
@@@ -2506,8 -2487,7 +2510,8 @@@ static int __init gic_acpi_parse_virt_m
        int maint_irq_mode;
        static int first_madt = true;
  
 -      if (!acpi_gicc_is_usable(gicc))
 +      if (!(gicc->flags &
 +            (ACPI_MADT_ENABLED | ACPI_MADT_GICC_ONLINE_CAPABLE)))
                return 0;
  
        maint_irq_mode = (gicc->flags & ACPI_MADT_VGIC_IRQ_MODE) ?
index 4f3a12383a1e4111788baf798cacd3b9accb71eb,983538a89e653bdad5019bd812c25548f7c90e39..47f3200476da5ee3c90f1f7c5c9b0cdac676ee7b
@@@ -26,7 -26,7 +26,7 @@@ static unsigned int riscv_intc_nr_irqs 
  static unsigned int riscv_intc_custom_base __ro_after_init = BITS_PER_LONG;
  static unsigned int riscv_intc_custom_nr_irqs __ro_after_init;
  
- static asmlinkage void riscv_intc_irq(struct pt_regs *regs)
+ static void riscv_intc_irq(struct pt_regs *regs)
  {
        unsigned long cause = regs->cause & ~CAUSE_IRQ_FLAG;
  
@@@ -34,7 -34,7 +34,7 @@@
                pr_warn_ratelimited("Failed to handle interrupt (cause: %ld)\n", cause);
  }
  
- static asmlinkage void riscv_intc_aia_irq(struct pt_regs *regs)
+ static void riscv_intc_aia_irq(struct pt_regs *regs)
  {
        unsigned long topi;
  
@@@ -253,9 -253,8 +253,9 @@@ IRQCHIP_DECLARE(andes, "andestech,cpu-i
  static int __init riscv_intc_acpi_init(union acpi_subtable_headers *header,
                                       const unsigned long end)
  {
 -      struct fwnode_handle *fn;
        struct acpi_madt_rintc *rintc;
 +      struct fwnode_handle *fn;
 +      int rc;
  
        rintc = (struct acpi_madt_rintc *)header;
  
                return -ENOMEM;
        }
  
 -      return riscv_intc_init_common(fn, &riscv_intc_chip);
 +      rc = riscv_intc_init_common(fn, &riscv_intc_chip);
 +      if (rc)
 +              irq_domain_free_fwnode(fn);
 +
 +      return rc;
  }
  
  IRQCHIP_ACPI_DECLARE(riscv_intc, ACPI_MADT_TYPE_RINTC, NULL,
diff --combined include/linux/acpi.h
index e93059f71c7185ad7c0677415c3cb6bd33cb7bc8,000d339e159605675643cb16eb7b8ba7bae56937..f0b95c76c707fbcf964dc5871929c5e55874d274
@@@ -24,7 -24,6 +24,7 @@@ struct irq_domain_ops
  #define _LINUX
  #endif
  #include <acpi/acpi.h>
 +#include <acpi/acpi_numa.h>
  
  #ifdef        CONFIG_ACPI
  
@@@ -36,6 -35,7 +36,6 @@@
  
  #include <acpi/acpi_bus.h>
  #include <acpi/acpi_drivers.h>
 -#include <acpi/acpi_numa.h>
  #include <acpi/acpi_io.h>
  #include <asm/acpi.h>
  
@@@ -237,6 -237,11 +237,6 @@@ acpi_table_parse_cedt(enum acpi_cedt_ty
  int acpi_parse_mcfg (struct acpi_table_header *header);
  void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
  
 -static inline bool acpi_gicc_is_usable(struct acpi_madt_generic_interrupt *gicc)
 -{
 -      return gicc->flags & ACPI_MADT_ENABLED;
 -}
 -
  #if defined(CONFIG_X86) || defined(CONFIG_LOONGARCH)
  void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa);
  #else
@@@ -274,6 -279,9 +274,9 @@@ static inline bool invalid_phys_cpuid(p
        return phys_id == PHYS_CPUID_INVALID;
  }
  
+ int __init acpi_get_madt_revision(void);
  /* Validate the processor object's proc_id */
  bool acpi_duplicate_processor_id(int proc_id);
  /* Processor _CTS control */
@@@ -299,8 -307,6 +302,8 @@@ int acpi_map_cpu(acpi_handle handle, ph
  int acpi_unmap_cpu(int cpu);
  #endif /* CONFIG_ACPI_HOTPLUG_CPU */
  
 +acpi_handle acpi_get_processor_handle(int cpu);
 +
  #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
  int acpi_get_ioapic_id(acpi_handle handle, u32 gsi_base, u64 *phys_addr);
  #endif
@@@ -573,7 -579,6 +576,7 @@@ acpi_status acpi_run_osc(acpi_handle ha
  #define OSC_SB_CPC_FLEXIBLE_ADR_SPACE         0x00004000
  #define OSC_SB_GENERIC_INITIATOR_SUPPORT      0x00020000
  #define OSC_SB_NATIVE_USB4_SUPPORT            0x00040000
 +#define OSC_SB_BATTERY_CHARGE_LIMITING_SUPPORT        0x00080000
  #define OSC_SB_PRM_SUPPORT                    0x00200000
  #define OSC_SB_FFH_OPR_SUPPORT                        0x00400000
  
@@@ -759,7 -764,6 +762,7 @@@ static inline u64 acpi_arch_get_root_po
  }
  #endif
  
 +int acpi_get_local_u64_address(acpi_handle handle, u64 *addr);
  int acpi_get_local_address(acpi_handle handle, u32 *addr);
  const char *acpi_get_subsystem_id(acpi_handle handle);
  
  #define acpi_dev_uid_match(adev, uid2)                        (adev && false)
  #define acpi_dev_hid_uid_match(adev, hid2, uid2)      (adev && false)
  
 -#include <acpi/acpi_numa.h>
 -
  struct fwnode_handle;
  
  static inline bool acpi_dev_found(const char *hid)
@@@ -1073,11 -1079,6 +1076,11 @@@ static inline bool acpi_sleep_state_sup
        return false;
  }
  
 +static inline acpi_handle acpi_get_processor_handle(int cpu)
 +{
 +      return NULL;
 +}
 +
  #endif        /* !CONFIG_ACPI */
  
  extern void arch_post_acpi_subsys_init(void);
index bea39a0292eb4b5cfd95dc6ffa0530b42e44f33b,dac7466de5f35e93cf4066e737a61d7b6d8e21f9..3f30c88e0b4c59aa238b709a87f43cbe6157092c
@@@ -5,14 -5,13 +5,14 @@@
  
  #include <linux/kernel.h>
  #include <linux/bitops.h>
 -#include <linux/cpumask.h>
 +#include <linux/cleanup.h>
  #include <linux/irqreturn.h>
  #include <linux/irqnr.h>
  #include <linux/hardirq.h>
  #include <linux/irqflags.h>
  #include <linux/hrtimer.h>
  #include <linux/kref.h>
 +#include <linux/cpumask_types.h>
  #include <linux/workqueue.h>
  #include <linux/jump_label.h>
  
@@@ -169,7 -168,7 +169,7 @@@ static inline int __must_chec
  request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
            const char *name, void *dev)
  {
-       return request_threaded_irq(irq, handler, NULL, flags, name, dev);
+       return request_threaded_irq(irq, handler, NULL, flags | IRQF_COND_ONESHOT, name, dev);
  }
  
  extern int __must_check
@@@ -236,9 -235,6 +236,9 @@@ extern void enable_percpu_irq(unsigned 
  extern bool irq_percpu_is_enabled(unsigned int irq);
  extern void irq_wake_thread(unsigned int irq, void *dev_id);
  
 +DEFINE_LOCK_GUARD_1(disable_irq, int,
 +                  disable_irq(*_T->lock), enable_irq(*_T->lock))
 +
  extern void disable_nmi_nosync(unsigned int irq);
  extern void disable_percpu_nmi(unsigned int irq);
  extern void enable_nmi(unsigned int irq);
This page took 0.304263 seconds and 4 git commands to generate.