linux/kernel/irq
Bixuan Cui dbbc93576e genirq/msi: Ensure deactivation on teardown
msi_domain_alloc_irqs() invokes irq_domain_activate_irq(), but
msi_domain_free_irqs() does not enforce deactivation before tearing down
the interrupts.

This happens when PCI/MSI interrupts are set up and never used before being
torn down again, e.g. in error handling pathes. The only place which cleans
that up is the error handling path in msi_domain_alloc_irqs().

Move the cleanup from msi_domain_alloc_irqs() into msi_domain_free_irqs()
to cure that.

Fixes: f3b0946d62 ("genirq/msi: Make sure PCI MSIs are activated early")
Signed-off-by: Bixuan Cui <cuibixuan@huawei.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20210518033117.78104-1-cuibixuan@huawei.com
2021-08-10 15:55:19 +02:00
..
affinity.c
autoprobe.c
chip.c genirq: Provide IRQCHIP_AFFINITY_PRE_STARTUP 2021-08-10 10:59:20 +02:00
cpuhotplug.c
debug.h
debugfs.c
devres.c
dummychip.c irq: Fix typos in comments 2021-03-22 04:23:14 +01:00
generic-chip.c kernel/irq: export irq_gc_set_wake 2021-03-15 16:36:44 +01:00
handle.c genirq: Add a IRQF_NO_DEBUG flag 2021-05-17 20:01:35 +02:00
internals.h
ipi.c genirq: Fix typos and misspellings in comments 2021-03-16 15:08:29 +01:00
irq_sim.c The usual updates from the irq departement: 2021-04-26 09:43:16 -07:00
irqdesc.c genirq/irqdesc: Drop excess kernel-doc entry @lookup 2021-06-28 11:33:32 +01:00
irqdomain.c irqdomain: Introduce irq_resolve_mapping() 2021-06-10 13:09:18 +01:00
Kconfig powerpc: Move the use of irq_domain_add_nomap() behind a config option 2021-06-10 13:09:17 +01:00
Makefile
manage.c Merge branch 'irq/affinity' into irq/core 2021-05-19 11:04:47 +02:00
matrix.c genirq/matrix: Prevent allocation counter corruption 2021-03-19 22:52:11 +01:00
migration.c genirq: Fix typos and misspellings in comments 2021-03-16 15:08:29 +01:00
msi.c genirq/msi: Ensure deactivation on teardown 2021-08-10 15:55:19 +02:00
pm.c
proc.c kernel: Initialize cpumask before parsing 2021-04-10 13:35:54 +02:00
resend.c genirq: Fix typos and misspellings in comments 2021-03-16 15:08:29 +01:00
settings.h genirq: Add a IRQF_NO_DEBUG flag 2021-05-17 20:01:35 +02:00
spurious.c genirq: Reduce irqdebug cacheline bouncing 2021-04-10 13:35:54 +02:00
timings.c genirq/timings: Prevent potential array overflow in __irq_timings_store() 2021-08-10 15:39:00 +02:00