Re: MSIs not freed in GICv3 ITS driver

From: Marc Zyngier

Date: Thu Feb 19 2026 - 11:54:37 EST


On Fri, 16 Jan 2026 15:03:33 +0000,
Manivannan Sadhasivam <mani@xxxxxxxxxx> wrote:
>
> Hi Marc,
>
> Looks like this has fallen through the cracks and my colleage internally
> reported a warning during the removal of a PCI driver and it seems to be related
> to the issue we were discussing in this thread:
>
> [ 54.727284] WARNING: drivers/irqchip/irq-gic-v3-its.c:3639 at its_msi_teardown+0x11c/0x13c, CPU#4: kworker/u73:1/115
> [ 54.738366] Modules linked in: mhi_pci_generic mhi nvme_core usb_f_fs libcomposite sm3_ce nvmem_qcom_spmi_sdam qcom_pon rtc_pm8xxx qcom_spmi_temp_alarm qcom_stats dispcc_glymur gpi llcc_qcom phy_qcom_qmp_pcie qcom_cpucp_mbox qcom_wdt socinfo
> [ 54.760588] CPU: 4 UID: 0 PID: 115 Comm: kworker/u73:1 Tainted: G W 6.18.0-next-20251210-14099-gc20082c23661-dirty #2 PREEMPT
> [ 54.774067] Tainted: [W]=WARN
> [ 54.777412] Hardware name: Qualcomm MTP/Qualcomm Test Device, BIOS 7.0.251121.BOOT.OSSUEFI.3.1-00008-GLYMUR-1 11/21/2025
> [ 54.788849] Workqueue: async async_run_entry_fn
> [ 54.793791] pstate: 21400009 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
> [ 54.801230] pc : its_msi_teardown+0x11c/0x13c
> [ 54.805997] lr : its_msi_teardown+0x54/0x13c
> [ 54.810675] sp : ffff8000837cb710
> [ 54.814373] x29: ffff8000837cb710 x28: ffff00080190e410 x27: ffff0008085ba390
> [ 54.821985] x26: ffff000808629bf0 x25: 0000000000000000 x24: 0000000000000066
> [ 54.829602] x23: 0000000000000007 x22: 0000000000000020 x21: ffff000800059608
> [ 54.837209] x20: ffff000800059607 x19: ffff000800a4a300 x18: 00000000ffffffff
> [ 54.844819] x17: ffff00080ec65400 x16: ffff00080ec65200 x15: ffff00080ec65000
> [ 54.852429] x14: 0000000000000004 x13: ffff0008000b8810 x12: 0000000000000000
> [ 54.860046] x11: ffff0008007798e8 x10: 0000000000000002 x9 : 0000000000000001
> [ 54.867661] x8 : ffff0008007796f8 x7 : 000000000000001f x6 : ffff8000837cb640
> [ 54.875277] x5 : ffff000801918f40 x4 : 0000000000000007 x3 : 0000000000000000
> [ 54.882891] x2 : ffff000800a037c0 x1 : 0000000000000020 x0 : 0000000000000007
> [ 54.890509] Call trace:
> [ 54.893320] its_msi_teardown+0x11c/0x13c (P)
> [ 54.898082] its_msi_teardown+0x34/0x44
> [ 54.902316] msi_remove_device_irq_domain+0x70/0x114
> [ 54.907701] msi_device_data_release+0x20/0x64
> [ 54.912551] devres_release_all+0xa4/0x104

That's nowhere near enough information for me to do anything about it.

Unless you describe exactly what device this is, its allocation
requirements, the topology of the system and finally reproduce it on a
vanilla kernel and not something that I have no access to, I can't do
much for you.

M.

--
Without deviation from the norm, progress is not possible.