linux/drivers/irqchip
Andrew Bresticker 08fb624802 irqchip/riscv-imsic: Start local sync timer on correct CPU
When starting the local sync timer to synchronize the state of a remote
CPU it should be added on the CPU to be synchronized, not the initiating
CPU. This results in interrupt delivery being delayed until the timer
eventually runs (due to another mask/unmask/migrate operation) on the
target CPU.

Fixes: 0f67911e82 ("irqchip/riscv-imsic: Separate next and previous pointers in IMSIC vector")
Signed-off-by: Andrew Bresticker <abrestic@rivosinc.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Anup Patel <anup@brainfault.org>
Link: https://lore.kernel.org/all/20250514171320.3494917-1-abrestic@rivosinc.com
2025-05-15 16:01:50 +02:00
..
alphascale_asm9260-icoll.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
exynos-combiner.c Merge branch irq/generic_handle_domain_irq-core into irq/irqchip-next 2021-06-11 14:32:12 +01:00
irq-al-fic.c irqchip/al-fic: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:50 -07:00
irq-alpine-msi.c irqchip/alpine-msi: Fix off-by-one in allocation error path 2024-04-09 11:03:15 +02:00
irq-apple-aic.c arm64: sysreg: Add layout for ICH_HCR_EL2 2025-03-03 14:51:51 -08:00
irq-armada-370-xp.c irqdomain: Rename irq_get_default_host() to irq_get_default_domain() 2025-04-04 16:39:10 +02:00
irq-aspeed-i2c-ic.c irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value 2022-05-04 16:37:48 +01:00
irq-aspeed-intc.c irqchip/aspeed-intc: Add AST27XX INTC support 2024-10-17 21:35:28 +02:00
irq-aspeed-scu-ic.c irqchip/aspeed-scu-ic: Correctly initialise status and enable registers 2023-02-05 10:55:19 +00:00
irq-aspeed-vic.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-ath79-cpu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
irq-ath79-misc.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-atmel-aic-common.c of: remove internal arguments from of_property_for_each_u32() 2024-07-25 06:53:47 -05:00
irq-atmel-aic-common.h
irq-atmel-aic.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-atmel-aic5.c irqchip/atmel-aic5: Add support for sam9x7 aic 2024-10-02 15:36:47 +02:00
irq-bcm2712-mip.c irqchip/irq-bcm2712-mip: Set EOI/ACK flags in msi_parent_ops 2025-04-07 16:27:48 +02:00
irq-bcm2835.c irqchip/bcm2835: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND 2024-07-15 15:13:55 +02:00
irq-bcm2836.c irqchip/bcm2836: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND 2024-12-03 12:15:42 +01:00
irq-bcm6345-l1.c irqchip/irq-bcm6345-l1: Avoid explicit cpumask allocation on stack 2024-04-24 21:23:49 +02:00
irq-bcm7038-l1.c irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic 2024-02-13 10:53:15 +01:00
irq-bcm7120-l2.c irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts 2023-02-18 14:23:41 +00:00
irq-brcmstb-l2.c irqchip/irq-brcmstb-l2: Replace brcmstb_l2_mask_and_ack() by generic function 2025-01-15 09:47:46 +01:00
irq-clps711x.c irqdomain: Rename irq_set_default_host() to irq_set_default_domain() 2025-04-04 16:39:10 +02:00
irq-crossbar.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
irq-csky-apb-intc.c irqchip: Use of_property_read_bool() for boolean properties 2023-04-08 11:07:49 +01:00
irq-csky-mpintc.c irqchip/csky-mpintc: Fixup mask/unmask implementation 2021-11-12 16:09:50 +00:00
irq-davinci-cp-intc.c irqchip/davinci-cp-intc: Remove public header 2025-03-04 15:46:59 +01:00
irq-digicolor.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-dw-apb-ictl.c Revert "irqchip/dw-apb-ictl: Support building as module" 2024-06-25 21:30:48 +02:00
irq-ftintc010.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-gic-common.c irqchip/gic-v3: Make distributor priorities variables 2024-06-24 18:16:44 +01:00
irq-gic-common.h Switch ARM/ARM64 over to the modern per device MSI domains: 2024-07-22 14:02:19 -07:00
irq-gic-pm.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-gic-realview.c irqchip/gic/realview: Fix refcount leak in realview_gic_of_init 2022-06-09 17:36:57 +01:00
irq-gic-v2m.c irqchip: Drop MSI_CHIP_FLAG_SET_ACK from unsuspecting MSI drivers 2025-05-14 16:24:27 +02:00
irq-gic-v3-its-fsl-mc-msi.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-gic-v3-its-msi-parent.c irqchip: Drop MSI_CHIP_FLAG_SET_ACK from unsuspecting MSI drivers 2025-05-14 16:24:27 +02:00
irq-gic-v3-its.c IOMMU Updates for Linux v6.15 2025-03-26 20:10:09 -07:00
irq-gic-v3-mbi.c irqchip: Drop MSI_CHIP_FLAG_SET_ACK from unsuspecting MSI drivers 2025-05-14 16:24:27 +02:00
irq-gic-v3.c irqchip/gic-v3: Fix rk3399 workaround when secure interrupts are enabled 2025-02-17 22:41:06 +01:00
irq-gic-v4.c irqchip/gic-v4.1: Replace bare number with ID_AA64PFR0_EL1_GIC_V4P1 2024-08-02 14:54:25 +02:00
irq-gic.c irqchip/gic: Correct declaration of *percpu_base pointer in union gic_base 2024-12-13 18:11:52 +01:00
irq-goldfish-pic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-hip04.c irqchip/gic-v3: Make distributor priorities variables 2024-06-24 18:16:44 +01:00
irq-i8259.c irqchipr/i8259: Mark i8259_of_init() static 2023-08-21 17:40:30 +01:00
irq-idt3243x.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-imgpdc.c irqchip: Switch back to struct platform_driver::remove() 2024-11-26 20:09:06 +01:00
irq-imx-gpcv2.c irqdomain: Rename irq_set_default_host() to irq_set_default_domain() 2025-04-04 16:39:10 +02:00
irq-imx-intmux.c irqchip: Switch back to struct platform_driver::remove() 2024-11-26 20:09:06 +01:00
irq-imx-irqsteer.c irqchip/imx-irqsteer: Support up to 960 input interrupts 2025-03-07 09:42:46 +01:00
irq-imx-mu-msi.c irqchip/irq-msi-lib: Optionally set default irq_eoi()/irq_ack() 2025-02-20 15:19:26 +01:00
irq-ingenic-tcu.c irqchip/ingenic-tcu: Use correctly sized arguments for bit field 2021-12-16 15:19:52 +00:00
irq-ingenic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-ixp4xx.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-jcore-aic.c irqchip/jcore-aic, clocksource/drivers/jcore: Fix jcore-pit interrupt request 2025-02-17 23:27:49 +01:00
irq-keystone.c irqchip: keystone: Use syscon_regmap_lookup_by_phandle_args 2025-01-15 09:47:46 +01:00
irq-lan966x-oic.c irqchip: Add support for LAN966x OIC 2024-06-17 15:48:15 +02:00
irq-loongarch-avec.c irqchip/loongarch-avec: Add multi-nodes topology support 2025-01-15 10:19:20 +01:00
irq-loongarch-cpu.c Updates for the interrupt subsystem: 2024-09-17 07:09:17 +02:00
irq-loongson-eiointc.c irqchip/loongson-eiointc: Add virt extension support 2024-11-13 16:18:27 +08:00
irq-loongson-htpic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-loongson-htvec.c LoongArch: Move irqchip function prototypes to irq-loongson.h 2024-08-23 20:40:27 +02:00
irq-loongson-liointc.c LoongArch: Move irqchip function prototypes to irq-loongson.h 2024-08-23 20:40:27 +02:00
irq-loongson-pch-lpc.c LoongArch: Move irqchip function prototypes to irq-loongson.h 2024-08-23 20:40:27 +02:00
irq-loongson-pch-msi.c irqchip/irq-msi-lib: Optionally set default irq_eoi()/irq_ack() 2025-02-20 15:19:26 +01:00
irq-loongson-pch-pic.c LoongArch: Move irqchip function prototypes to irq-loongson.h 2024-08-23 20:40:27 +02:00
irq-loongson.h irqchip/loongarch-avec: Add AVEC irqchip support 2024-08-23 20:40:27 +02:00
irq-lpc32xx.c irqchip/lpc32xx: Switch to dynamic chip name output 2022-02-15 11:25:46 +00:00
irq-ls-extirq.c irqchip/ls-extirq: Fix endianness detection 2022-12-05 10:39:52 +00:00
irq-ls-scfg-msi.c genirq/msi: Refactor iommu_dma_compose_msi_msg() 2025-02-21 10:04:12 -04:00
irq-ls1x.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-madera.c irqchip: Switch back to struct platform_driver::remove() 2024-11-26 20:09:06 +01:00
irq-mbigen.c Updates for the interrupt subsystem: 2024-09-17 07:09:17 +02:00
irq-mchp-eic.c irqchip/mchp-eic: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:52 -07:00
irq-meson-gpio.c irqchip: Add support for Amlogic A4 and A5 SoCs 2025-03-17 08:38:24 +01:00
irq-mips-cpu.c irqchip/mips: Fix RCU violation when using irqdomain lookup on interrupt entry 2021-07-09 10:18:58 +01:00
irq-mips-gic.c irqchip/mips-gic: Prevent indirect access to clusters without CPU cores 2024-10-30 15:41:32 +01:00
irq-mmp.c irqchip/mmp: Remove non-DT codepath 2023-06-17 07:21:02 +01:00
irq-mscc-ocelot.c irqchip/ocelot: Comment sticky register clearing code 2024-10-02 15:11:07 +02:00
irq-msi-lib.c irqchip/irq-msi-lib: Optionally set default irq_eoi()/irq_ack() 2025-02-20 15:19:26 +01:00
irq-msi-lib.h irqchip/irq-msi-lib: Prepare for DEVICE MSI to replace platform MSI 2024-07-18 20:31:20 +02:00
irq-mst-intc.c irqchip/irq-mst: Support polarity configuration 2021-04-07 13:26:00 +01:00
irq-mtk-cirq.c irqchip/irq-mtk-cirq: Add support for System CIRQ on MT8192 2022-11-28 11:44:02 +00:00
irq-mtk-sysirq.c irqchip/mtk-sysirq: Skip setting irq-wake 2021-08-12 08:15:15 +01:00
irq-mvebu-gicp.c irqchip: Drop MSI_CHIP_FLAG_SET_ACK from unsuspecting MSI drivers 2025-05-14 16:24:27 +02:00
irq-mvebu-icu.c irqchip/irq-mvebu-icu: Fix access to msi_data from irq_domain::host_data 2025-01-27 11:07:03 +01:00
irq-mvebu-odmi.c irqchip: Drop MSI_CHIP_FLAG_SET_ACK from unsuspecting MSI drivers 2025-05-14 16:24:27 +02:00
irq-mvebu-pic.c - Move the ->select callback to the correct ops structure in irq-mvebu-sei to 2024-12-01 12:37:58 -08:00
irq-mvebu-sei.c irqchip/irq-msi-lib: Optionally set default irq_eoi()/irq_ack() 2025-02-20 15:19:26 +01:00
irq-mxs.c irqchip/mxs: Declare icoll_handle_irq() as static 2024-04-23 00:28:14 +02:00
irq-nvic.c ARM development updates for 5.18: 2022-03-23 17:35:57 -07:00
irq-omap-intc.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-ompic.c
irq-or1k-pic.c irqchip: or1k-pic: Undefine mask_ack for level triggered hardware 2022-06-28 17:31:15 +09:00
irq-orion.c irqchip/orion: Use of_address_count() helper 2023-08-21 17:48:59 +01:00
irq-owl-sirq.c irqchip: Add Actions Semi Owl SIRQ controller 2020-09-25 16:57:33 +01:00
irq-partition-percpu.c genirq: Remove leading space from irq_chip::irq_print_chip() callbacks 2025-02-07 08:56:01 +01:00
irq-pic32-evic.c irqdomain: Rename irq_set_default_host() to irq_set_default_domain() 2025-04-04 16:39:10 +02:00
irq-pruss-intc.c irqchip: Switch back to struct platform_driver::remove() 2024-11-26 20:09:06 +01:00
irq-qcom-mpm.c irqchip/qcom-mpm: Prevent crash when trying to handle non-wake GPIOs 2025-05-02 21:07:02 +02:00
irq-rda-intc.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-realtek-rtl.c irqchip/realtek-rtl: use parent interrupts 2022-09-28 14:17:10 +01:00
irq-renesas-intc-irqpin.c irqchip: Switch back to struct platform_driver::remove() 2024-11-26 20:09:06 +01:00
irq-renesas-irqc.c irqchip: Switch back to struct platform_driver::remove() 2024-11-26 20:09:06 +01:00
irq-renesas-rza1.c irqchip: Switch back to struct platform_driver::remove() 2024-11-26 20:09:06 +01:00
irq-renesas-rzg2l.c irqchip/renesas-rzg2l: Simplify checks in rzg2l_irqc_common_init() 2025-02-18 09:03:52 +01:00
irq-renesas-rzv2h.c irqchip/renesas-rzv2h: Prevent TINT spurious interrupt 2025-04-16 14:29:38 +02:00
irq-riscv-aplic-direct.c irqchip/riscv-aplic: Add support for hart indexes 2025-02-03 14:27:39 +01:00
irq-riscv-aplic-main.c irqchip/riscv-aplic: Prevent crash when MSI domain is missing 2024-11-16 00:45:37 +01:00
irq-riscv-aplic-main.h irqchip/riscv-aplic: Add ACPI support 2024-08-27 15:48:36 +02:00
irq-riscv-aplic-msi.c irqchip/riscv-aplic: Prevent crash when MSI domain is missing 2024-11-16 00:45:37 +01:00
irq-riscv-imsic-early.c Updates for interrupt chip drivers: 2025-03-25 09:54:36 -07:00
irq-riscv-imsic-platform.c irqchip/riscv-imsic: Special handling for non-atomic device MSI update 2025-02-20 15:19:27 +01:00
irq-riscv-imsic-state.c irqchip/riscv-imsic: Start local sync timer on correct CPU 2025-05-15 16:01:50 +02:00
irq-riscv-imsic-state.h irqchip/riscv-imsic: Avoid interrupt translation in interrupt handler 2025-02-20 15:19:27 +01:00
irq-riscv-intc.c irqchip/riscv-intc: Fix SMP=n boot with ACPI 2024-10-15 23:14:25 +02:00
irq-sa11x0.c irqchip: Remove asmlinkage for handlers registered with set_handle_irq() 2024-07-30 13:35:49 +02:00
irq-sg2042-msi.c irqchip/sg2042-msi: Add missing chip flags 2025-04-07 09:23:55 +02:00
irq-sifive-plic.c A set of updates for the interrupt subsystem: 2024-11-19 15:54:19 -08:00
irq-sl28cpld.c irqchip/irq-sl28cpld: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
irq-sni-exiu.c irqchip/exiu: Fix acknowledgment of edge triggered interrupts 2022-05-04 16:33:17 +01:00
irq-sp7021-intc.c irqchip: Add Sunplus SP7021 interrupt controller driver 2022-07-08 14:23:57 +02:00
irq-st.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-starfive-jh8100-intc.c irqchip: Add StarFive external interrupt controller 2024-02-26 15:09:18 +01:00
irq-stm32-exti.c irqchip/stm32-exti: Split MCU and MPU code 2024-06-23 19:49:45 +02:00
irq-stm32mp-exti.c irqchip/stm32mp-exti: Use of_property_present() for non-boolean properties 2024-11-07 00:23:59 +01:00
irq-sun4i.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-sun6i-r.c minmax: don't use max() in situations that want a C constant expression 2024-07-28 20:23:27 -07:00
irq-sunxi-nmi.c irqchip/sunxi-nmi: Support Allwinner A523 NMI controller 2025-03-07 08:39:03 +01:00
irq-tb10x.c irqchip: Remove redundant irq_chip::name initialization 2024-03-25 17:38:29 +01:00
irq-tegra.c irqchip/tegra: Fix overflow implicit truncation warnings 2022-06-15 17:41:11 +02:00
irq-thead-c900-aclint-sswi.c irqchip/riscv: Ensure ordering of memory writes and IPI writes 2025-01-27 11:07:03 +01:00
irq-ti-sci-inta.c irqchip/ti-sci-inta : Add module build support 2025-01-15 09:54:29 +01:00
irq-ti-sci-intr.c irqchip/ti-sci-intr: Add module build support 2025-01-15 09:54:29 +01:00
irq-ts4800.c irqchip/ts4800: Replace seq_printf() by seq_puts() 2025-01-15 09:59:42 +01:00
irq-uniphier-aidet.c irqchip: Explicitly include correct DT includes 2023-08-21 17:49:11 +01:00
irq-versatile-fpga.c Fix a potential abuse of seq_printf() format string in drivers 2024-11-22 15:31:35 +01:00
irq-vf610-mscm-ir.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
irq-vic.c irqchip/vic: Fix a kernel-doc warning 2024-02-21 18:31:08 +01:00
irq-vt8500.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-wpcm450-aic.c irqchip/wpcm450: Fix memory leak in wpcm450_aic_of_init() 2022-11-26 13:29:48 +00:00
irq-xilinx-intc.c irqdomain: Rename irq_set_default_host() to irq_set_default_domain() 2025-04-04 16:39:10 +02:00
irq-xtensa-mx.c irqdomain: Rename irq_set_default_host() to irq_set_default_domain() 2025-04-04 16:39:10 +02:00
irq-xtensa-pic.c irqdomain: Rename irq_set_default_host() to irq_set_default_domain() 2025-04-04 16:39:10 +02:00
irq-zevio.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irqchip.c irqchip: Plug a OF node reference leak in platform_irqchip_probe() 2025-01-15 10:38:43 +01:00
Kconfig irqchip/irq-bcm2712-mip: Enable driver when ARCH_BCM2835 is enabled 2025-04-16 14:39:25 +02:00
Makefile pci-v6.15-changes 2025-03-28 19:36:53 -07:00
qcom-irq-combiner.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
qcom-pdc.c irqchip/qcom-pdc: Workaround hardware register bug on X1E80100 2025-02-21 09:47:06 +01:00
spear-shirq.c irqchip/spear-shirq: Add support for IRQ 0..6 2021-12-16 13:29:44 +00:00