linux/drivers/net/dsa
Aleksei Sviridkin 0d80ba0a20 net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq
mt7530_remove_common() 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: irq_find_mapping() returns 0, irq_to_desc() returns
NULL and handle_nested_irq() 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.

regmap_del_irq_chip() 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: dsa_unregister_switch() has freed
the PHY handlers by then, so handle_nested_irq() finds no action and
returns.

Fixes: 254f6b272e ("dsa: mt7530: Utilize REGMAP_IRQ for interrupt handling")
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Link: https://patch.msgid.link/20260918015020.2518315-3-f@lex.la
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-24 08:16:53 -07:00
..
b53 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-18 10:42:41 -07:00
hirschmann net: dsa: hellcreek: avoid devlink resource IDs collision with PARENT_TOP 2026-06-15 12:41:40 -07:00
lantiq net: dsa: lantiq_gswip: fix GSWIP_MDIO_PHY_FCONTX_EN value 2026-09-09 17:59:33 -07:00
microchip net: dsa: microchip: add two-steps PTP support for KSZ8463 2026-07-31 16:29:56 -07:00
mv88e6xxx net: dsa: mv88e6xxx: 88E6191X and 88E6193X have no PTP 2026-09-23 18:39:46 -07:00
mxl862xx net: dsa: mxl862xx: disable the stats poll on teardown 2026-09-14 19:05:46 -07:00
netc net: dsa: netc: implement dynamic FDB entry ageing 2026-06-15 14:32:06 -07:00
ocelot Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
qca net: dsa: qca8k: fall back to ethernet-ports node name for LEDs 2026-07-02 11:48:25 +02:00
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-18 10:42:41 -07:00
sja1105 net: dsa: sja1105: round up PTP perout pin duration 2026-06-23 14:42:38 -07:00
xrs700x net: dsa: Use named initializers for struct i2c_device_id 2026-05-20 19:01:25 -07:00
bcm_sf2_cfp.c net: dsa: bcm_sf2: bound the CFP rule dump by the caller's buffer size 2026-09-04 15:19:57 -07:00
bcm_sf2_regs.h
bcm_sf2.c net: dsa: bcm_sf2: fix missing clk_disable_unprepare() in error paths 2026-03-19 09:26:40 -07:00
bcm_sf2.h net: dsa: use ethtool string helpers 2024-11-03 10:36:34 -08:00
dsa_loop.c net: dsa: dsa_loop: avoid devlink resource IDs collision with PARENT_TOP 2026-06-15 12:41:40 -07:00
Kconfig net: dsa: initial support for MT7628 embedded switch 2026-08-18 15:50:13 +02:00
ks8995.c net: dsa: ks8995: Fix incorrect OF match table name 2025-11-18 18:22:04 -08:00
lan9303_i2c.c net: dsa: Use named initializers for struct i2c_device_id 2026-05-20 19:01:25 -07:00
lan9303_mdio.c dsa: lan9303: consistent naming for PHY address parameter 2024-07-15 08:49:59 -07:00
lan9303-core.c net: dsa: lan9303: ensure chip reset and wait for READY status 2024-10-07 16:38:02 -07:00
lan9303.h
Makefile net: dsa: initial support for MT7628 embedded switch 2026-08-18 15:50:13 +02:00
mt7530-mdio.c net: dsa: mt7530: fix NULL dereference on unbind of MT7531 and MT7621 2026-09-24 08:16:53 -07:00
mt7530-mmio.c net: dsa: mt7530: add EN7528 support 2026-07-22 14:04:59 -07:00
mt7530.c net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq 2026-09-24 08:16:53 -07:00
mt7530.h net: dsa: mt7530: add EN7528 support 2026-07-22 14:04:59 -07:00
mt7628.c net: dsa: initial support for MT7628 embedded switch 2026-08-18 15:50:13 +02:00
mv88e6060.c net: dsa: mv88e6060: use simple HSR offload helpers 2025-12-01 16:45:08 -08:00
mv88e6060.h
rzn1_a5psw.c net: dsa: a5psw: use simple HSR offload helpers 2025-12-01 16:45:08 -08:00
rzn1_a5psw.h
vitesse-vsc73xx-core.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
vitesse-vsc73xx-platform.c net: dsa: Switch back to struct platform_driver::remove() 2024-10-04 16:39:57 -07:00
vitesse-vsc73xx-spi.c
vitesse-vsc73xx.h net: dsa: vsc73xx: implement FDB operations 2024-09-03 10:22:58 +02:00
yt921x.c net: dsa: yt921x: Add ACL support 2026-06-10 08:26:05 -07:00
yt921x.h net: dsa: yt921x: Fix external port detection 2026-07-21 11:21:37 -07:00