linux/drivers/iommu/amd
Sebastian Andrzej Siewior 680b652b2d iommu/amd: Use core's primary handler and set IRQF_ONESHOT
[ Upstream commit 5bfcdccb4d ]

request_threaded_irq() is invoked with a primary and a secondary handler
and no flags are passed. The primary handler is the same as
irq_default_primary_handler() so there is no need to have an identical
copy.

The lack of the IRQF_ONESHOT can be dangerous because the interrupt
source is not masked while the threaded handler is active. This means,
especially on LEVEL typed interrupt lines, the interrupt can fire again
before the threaded handler had a chance to run.

Use the default primary interrupt handler by specifying NULL and set
IRQF_ONESHOT so the interrupt source is masked until the secondary
handler is done.

Fixes: 72fe00f01f ("x86/amd-iommu: Use threaded interupt handler")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260128095540.863589-4-bigeasy@linutronix.de
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-02-26 14:59:05 -08:00
..
amd_iommu.h iommu/amd: Use core's primary handler and set IRQF_ONESHOT 2026-02-26 14:59:05 -08:00
amd_iommu_types.h Merge branches 'apple/dart', 'ti/omap', 'riscv', 'intel/vt-d' and 'amd/amd-vi' into next 2025-09-26 10:03:33 +02:00
debugfs.c iommu/amd: Fix potential out-of-bounds read in iommu_mmio_show 2025-12-18 14:02:49 +01:00
init.c iommu/amd: Use core's primary handler and set IRQF_ONESHOT 2026-02-26 14:59:05 -08:00
io_pgtable.c iommu/amd/pgtbl: Fix possible race while increase page table level 2025-09-19 09:39:40 +02:00
io_pgtable_v2.c iommu/pages: Remove iommu_alloc_page_node() 2025-04-17 16:22:51 +02:00
iommu.c iommu/amd: Use core's primary handler and set IRQF_ONESHOT 2026-02-26 14:59:05 -08:00
Kconfig iommu/amd: Convert to msi_create_parent_irq_domain() helper 2025-07-04 10:28:10 +02:00
Makefile iommu: make inclusion of amd directory conditional 2025-05-16 08:46:46 +02:00
pasid.c iommu/amd: Consolidate protection domain free code 2025-03-10 09:27:11 +01:00
ppr.c iommu/pages: Remove the order argument to iommu_free_pages() 2025-04-17 16:22:33 +02:00
quirks.c iommu/amd: Include PCI segment ID when initialize IOMMU 2022-07-07 09:37:51 +02:00