[tip: irq/urgent] irqchip/irq-msi-lib: Free wired MSI descriptors

From: tip-bot2 for Avi Weiss

Date: Wed Oct 28 2026 - 16:55:50 EST


The following commit has been merged into the irq/urgent branch of tip:

Commit-ID: 1c16bc2b1122f78f9d51c5785f7a78b36d44972b
Gitweb: https://git.kernel.org/tip/1c16bc2b1122f78f9d51c5785f7a78b36d44972b
Author: Avi Weiss <thnkslprpt@xxxxxxxxx>
AuthorDate: Sun, 25 Oct 2026 14:20:58 +02:00
Committer: Thomas Gleixner <tglx@xxxxxxxxxx>
CommitterDate: Wed, 28 Oct 2026 21:29:53 +01:00

irqchip/irq-msi-lib: Free wired MSI descriptors

msi_device_domain_alloc_wired() allocates a descriptor for each
interrupt, but wired MSI domains do not set MSI_FLAG_FREE_MSI_DESCS.
msi_device_domain_free_wired() releases the IRQ without freeing its
descriptor, eventually exhausting the domain. Failed allocations also
leave descriptors behind.

Set MSI_FLAG_FREE_MSI_DESCS for wired MSI domains so both paths
release the descriptors.

Fixes: 64a855324311 ("irqchip/irq-msi-lib: Prepare for DOMAIN_BUS_WIRED_TO_MSI")
Signed-off-by: Avi Weiss <thnkslprpt@xxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Link: https://patch.msgid.link/20261025122058.2180685-1-thnkslprpt@xxxxxxxxx
---
drivers/irqchip/irq-msi-lib.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/irqchip/irq-msi-lib.c b/drivers/irqchip/irq-msi-lib.c
index 45e0ed3..a1e12aa 100644
--- a/drivers/irqchip/irq-msi-lib.c
+++ b/drivers/irqchip/irq-msi-lib.c
@@ -75,6 +75,7 @@ bool msi_lib_init_dev_msi_info(struct device *dev, struct irq_domain *domain,
info->flags = MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS | MSI_FLAG_FREE_MSI_DESCS;
fallthrough;
case DOMAIN_BUS_WIRED_TO_MSI:
+ info->flags |= MSI_FLAG_FREE_MSI_DESCS;
/* Remove PCI specific flags */
required_flags &= ~MSI_FLAG_PCI_MSI_MASK_PARENT;
break;