Messages in this thread | | | Date | Mon, 30 Mar 2020 14:47:09 -0000 | From | Thomas Gleixner <> | Subject | [GIT pull] irq/core for v5.7 |
| |
Linus,
please pull the latest irq/core branch from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-core-2020-03-30
up to: 8a13b02a010a: Merge tag 'irqchip-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core
Updates for the interrupt subsystem:
Treewide:
- Cleanup of setup_irq() which is not longer required because the memory allocator is available early. Most cleanup changes come through the various maintainer trees, so the final removal of setup_irq() is postponed towards the end of the merge window.
Core:
- Protection against unsafe invocation of interrupt handlers and unsafe interrupt injection including a fixup of the offending PCI/AER error injection mechanism.
Invoking interrupt handlers from arbitrary contexts, i.e. outside of an actual interrupt, can cause inconsistent state on the fragile x86 interrupt affinity changing hardware trainwreck.
Drivers:
- Second wave of support for the new ARM GICv4.1 - Multi-instance support for Xilinx and PLIC interrupt controllers - CPU-Hotplug support for PLIC - The obligatory new driver for X1000 TCU - Enhancements, cleanups and fixes all over the place
Thanks,
tglx
------------------> Alexander Sverdlin (1): genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()
Alexandre Torgue (2): irqchip/stm32: Add irq retrigger support pinctrl: stm32: Add level interrupt support to gpio irq chip
Anson Huang (1): irqchip: Add COMPILE_TEST support for IMX_INTMUX
Atish Patra (2): irqchip/sifive-plic: Enable/Disable external interrupts upon cpu online/offline irqchip/sifive-plic: Add support for multiple PLICs
Geert Uytterhoeven (1): irqchip/renesas-intc-irqpin: Restore devm_ioremap() alignment
Gustavo A. R. Silva (2): irqchip/irq-bcm7038-l1: Replace zero-length array with flexible-array member irqchip/qcom-irq-combiner: Replace zero-length array with flexible-array member
Hans de Goede (1): x86: Select HARDIRQS_SW_RESEND on x86
Heyi Guo (2): irqchip/gic-v3-its: Fix access width for gicr_syncr irqchip/gic-v4: Use Inner-Shareable attributes for virtual pending tables
Linus Walleij (1): irqchip: vic: Support cascaded VIC in device tree
Lukas Wunner (1): irqchip/bcm2835: Quiesce IRQs left enabled by bootloader
Marc Zyngier (20): irqchip/gic-v3-its: Probe ITS page size for all GITS_BASERn registers irqchip/atmel-aic: Fix irq_retrigger callback return value irqchip/atmel-aic5: Fix irq_retrigger callback return value ARM: sa1111: Fix irq_retrigger callback return value irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency irqchip/gic-v3: Use SGIs without active state if offered irqchip/gic-v4.1: Skip absent CPUs while iterating over redistributors irqchip/gic-v4.1: Ensure mutual exclusion between vPE affinity change and RD access irqchip/gic-v4.1: Ensure mutual exclusion betwen invalidations on the same RD irqchip/gic-v4.1: Advertise support v4.1 to KVM irqchip/gic-v4.1: Map the ITS SGIR register page irqchip/gic-v4.1: Plumb skeletal VSGI irqchip irqchip/gic-v4.1: Add initial SGI configuration irqchip/gic-v4.1: Plumb mask/unmask SGI callbacks irqchip/gic-v4.1: Plumb get/set_irqchip_state SGI callbacks irqchip/gic-v4.1: Plumb set_vcpu_affinity SGI callbacks irqchip/gic-v4.1: Move doorbell management to the GICv4 abstraction layer irqchip/gic-v4.1: Add VSGI allocation/teardown irqchip/gic-v4.1: Add VSGI property setup irqchip/gic-v4.1: Eagerly vmap vPEs
Marek Vasut (1): irqchip/stm32: Retrigger both in eoi and unmask callbacks
Michal Simek (2): irqchip/xilinx: Fill error code when irq domain registration fails irqchip/xilinx: Enable generic irq multi handler
Mubin Sayyed (2): irqchip/xilinx: Add support for multiple instances irqchip/xilinx: Do not call irq_set_default_host()
Sungbo Eo (2): irqchip/versatile-fpga: Handle chained IRQs properly irqchip/versatile-fpga: Apply clear-mask earlier
Thomas Gleixner (7): genirq/debugfs: Add missing sanity checks to interrupt injection genirq: Add protection against unsafe usage of generic_handle_irq() x86/apic/vector: Force interupt handler invocation to irq context genirq: Add return value to check_irq_resend() genirq: Sanitize state handling in check_irq_resend() genirq: Provide interrupt injection mechanism PCI/AER: Fix the broken interrupt injection
Zenghui Yu (1): irqchip/gic-v4.1: Wait for completion of redistributor's INVALL operation
afzal mohammed (6): irqchip: Replace setup_irq() by request_irq() alpha: Replace setup_irq() by request_irq() c6x: Replace setup_irq() by request_irq() hexagon: Replace setup_irq() by request_irq() sh: Replace setup_irq() by request_irq() unicore32: Replace setup_irq() by request_irq()
luanshi (2): irqdomain: Fix function documentation of __irq_domain_alloc_fwnode() irqchip/gic-v3: Move irq_domain_update_bus_token to after checking for NULL domain
周琰杰 (Zhou Yanjie) (1): irqchip/ingenic: Add support for TCU of X1000.
arch/alpha/kernel/irq_alpha.c | 29 +- arch/alpha/kernel/irq_i8259.c | 8 +- arch/alpha/kernel/irq_impl.h | 7 +- arch/alpha/kernel/irq_pyxis.c | 3 +- arch/alpha/kernel/sys_alcor.c | 3 +- arch/alpha/kernel/sys_cabriolet.c | 3 +- arch/alpha/kernel/sys_eb64p.c | 3 +- arch/alpha/kernel/sys_marvel.c | 2 +- arch/alpha/kernel/sys_miata.c | 6 +- arch/alpha/kernel/sys_ruffian.c | 3 +- arch/alpha/kernel/sys_rx164.c | 3 +- arch/alpha/kernel/sys_sx164.c | 3 +- arch/alpha/kernel/sys_wildfire.c | 7 +- arch/alpha/kernel/time.c | 6 +- arch/arm/common/sa1111.c | 7 +- arch/c6x/platforms/timer64.c | 11 +- arch/hexagon/kernel/smp.c | 22 +- arch/hexagon/kernel/time.c | 11 +- arch/microblaze/Kconfig | 2 + arch/microblaze/include/asm/irq.h | 3 - arch/microblaze/kernel/irq.c | 21 +- arch/riscv/kernel/traps.c | 2 +- arch/sh/boards/mach-cayman/irq.c | 18 +- arch/sh/drivers/dma/dma-pvr2.c | 9 +- arch/unicore32/kernel/time.c | 11 +- arch/x86/Kconfig | 1 + arch/x86/kernel/apic/vector.c | 6 + drivers/irqchip/Kconfig | 2 +- drivers/irqchip/irq-atmel-aic.c | 2 +- drivers/irqchip/irq-atmel-aic5.c | 2 +- drivers/irqchip/irq-bcm2835.c | 15 + drivers/irqchip/irq-bcm7038-l1.c | 2 +- drivers/irqchip/irq-gic-v3-its.c | 532 ++++++++++++++++++++++++++---- drivers/irqchip/irq-gic-v3.c | 16 +- drivers/irqchip/irq-gic-v4.c | 134 +++++++- drivers/irqchip/irq-i8259.c | 16 +- drivers/irqchip/irq-ingenic-tcu.c | 1 + drivers/irqchip/irq-ingenic.c | 9 +- drivers/irqchip/irq-renesas-intc-irqpin.c | 2 +- drivers/irqchip/irq-sifive-plic.c | 119 +++++-- drivers/irqchip/irq-stm32-exti.c | 14 +- drivers/irqchip/irq-versatile-fpga.c | 18 +- drivers/irqchip/irq-vic.c | 9 +- drivers/irqchip/irq-xilinx-intc.c | 123 ++++--- drivers/irqchip/qcom-irq-combiner.c | 2 +- drivers/pci/pcie/Kconfig | 1 + drivers/pci/pcie/aer_inject.c | 6 +- drivers/pinctrl/stm32/pinctrl-stm32.c | 57 +++- include/kvm/arm_vgic.h | 1 + include/linux/cpuhotplug.h | 1 + include/linux/interrupt.h | 2 + include/linux/irq.h | 13 + include/linux/irqchip/arm-gic-common.h | 2 + include/linux/irqchip/arm-gic-v3.h | 23 +- include/linux/irqchip/arm-gic-v4.h | 25 +- kernel/irq/Kconfig | 5 + kernel/irq/chip.c | 2 +- kernel/irq/debugfs.c | 28 +- kernel/irq/internals.h | 10 +- kernel/irq/irqdesc.c | 6 + kernel/irq/irqdomain.c | 14 +- kernel/irq/resend.c | 143 ++++++-- virt/kvm/arm/vgic/vgic-v3.c | 4 +- virt/kvm/arm/vgic/vgic-v4.c | 34 +- 64 files changed, 1185 insertions(+), 420 deletions(-)
| |