CVE-2026-98564: net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq
In the Linux kernel, the following vulnerability has been resolved:
net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq
mt7530removecommon() disposes the per-PHY interrupt mappings from .remove, but the regmap-irq chip that owns the domain is devm-registered, so its parent interrupt is only freed once .remove has returned. The switch's own regmap-irq thread can therefore still dispatch on a mapping that is already gone: irqfindmapping() returns 0, irqtodesc() returns NULL and handlenestedirq() locks desc->lock without checking it. The attached PHYs have not given those interrupts back yet either, which the kernel warns about a moment before the fault.
regmapdelirqchip() disposes the same mappings itself, after freeing the parent interrupt and before removing the domain, so there is nothing left for the driver to do here. Until it runs the descriptors stay alive, and a late dispatch on one of them is harmless: dsaunregisterswitch() has freed the PHY handlers by then, so handlenestedirq() finds no action and returns.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1
Event History
Frequently Asked Questions
When can this issue be triggered?
It can occur during removal of an MT7530 switch device, when the driver disposes per-PHY interrupt mappings before the devm-registered regmap-irq chip has freed its parent interrupt and removed its IRQ domain. A late regmap-irq dispatch can then target a mapping that no longer exists.
What is the likely impact if the race occurs?
The late dispatch can cause irq_find_mapping() to return zero and irq_to_desc() to return NULL. handle_nested_irq() then attempts to lock a NULL descriptor, resulting in a kernel fault; the kernel may also warn that attached PHYs have not released their interrupts.
Is a late interrupt inherently unsafe after the fix?
No. With mapping disposal left to regmap_del_irq_chip(), descriptors remain valid until the regmap-irq chip tears down its parent interrupt and domain. By that point dsa_unregister_switch() has freed the PHY handlers, so a late nested interrupt has no action and returns safely.