linux/drivers/net
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
..
arcnet net: arcnet: com20020-pci: avoid -Wformat-truncation warning 2026-05-22 17:20:57 -07:00
bonding bonding: crypto offload enabled, non-offload slave failover, rekey failed 2026-09-24 11:53:59 +02:00
can can: m_can: pci: Remove driver_data 2026-08-17 19:20:38 +02:00
dsa net: dsa: mt7530: leave the MDIO IRQ mappings to regmap-irq 2026-09-24 08:16:53 -07:00
ethernet net: emac: move setting of netops to fix crash 2026-09-24 15:37:47 +02:00
fddi net: fddi: skfp: fix NULL deref when setting the MAC address while down 2026-09-15 10:31:54 +02:00
fjes fjes: cancel force_close_task in fjes_remove() 2026-08-06 09:19:58 -07:00
hyperv hv_netvsc: Remove GPADL teardown special case for old Hyper-V hosts 2026-08-24 00:35:42 +00:00
ieee802154 ieee802154: hwsim: serialize pib updates to fix double-free 2026-09-02 10:26:47 +02:00
ipa net: ipa: balance runtime PM reference on remove error 2026-08-20 12:26:24 -07:00
ipvlan ipvlan: unregister upper devices outside pnodes_lock 2026-08-30 14:30:59 -07:00
mctp net: mctp: i3c: serialize probe with bus removal 2026-09-05 09:39:00 +01:00
mdio net: mdio: realtek-rtl9300: fix RTL931x C22 extended page selection 2026-09-23 18:54:19 -07:00
netdevsim netdevsim: update queue NAPI association on queue reset 2026-08-20 12:35:57 -07:00
ovpn ovpn: defer key slot crypto freeing to workqueue 2026-08-09 22:47:57 +02:00
pcs net: pcs: xpcs: fix clock reference leak on xpcs_init_clks failure 2026-09-22 15:39:06 +02:00
phy net: phy: micrel: Advance register data pointer in write loop 2026-09-18 17:07:41 -07:00
plip
ppp ppp_synctty: ensure a writeable skb header 2026-09-09 18:41:57 -07:00
pse-pd net: pse-pd: realtek-pse-mcu: add UART transport 2026-08-18 15:04:33 +02:00
slip slip: remove slip_hangup() to fix use-after-free in slip_receive_buf() 2026-08-27 12:38:27 -07:00
team net: team: check register_netdevice_notifier() error in team_module_init() 2026-08-04 18:50:02 -07:00
thunderbolt Including fixes from Bluetooth, IPSec and Netfilter. 2026-08-27 13:53:43 -07:00
usb net: usb: qmi_wwan: add Quectel EG120K-EA 2026-09-23 19:20:06 -07:00
vmxnet3 vmxnet3: fix BUG_ON in vmxnet3_get_hdr_len() for Geneve packets 2026-07-22 13:52:44 -07:00
vxlan vxlan: use one headroom snapshot for neighbour replies 2026-09-23 19:29:26 -07:00
wan net: lapbether: check register_netdevice_notifier() error in lapbeth_init_driver() 2026-08-04 18:49:03 -07:00
wireguard net: Use helpers to get/set UDP len tree-wide 2026-07-22 13:47:02 +02:00
wireless Including fixes from Netfilter, Bluetooth, IPSec and WiFi. 2026-09-17 10:40:48 -07:00
wwan net: wwan: t7xx: validate the netif index in t7xx_ccmni_recv_skb() 2026-09-16 18:58:45 -07:00
xen-netback
amt.c amt: Don't support cross-netns setup. 2026-08-10 16:03:03 -07:00
bareudp.c bareudp: Support per-netns netdev unregistration. 2026-07-11 12:57:50 +02:00
dummy.c net: change ndo_set_rx_mode_async return type to int 2026-06-09 18:15:29 -07:00
eql.c
geneve.c net: geneve: remove unused geneve_dev_create_fb 2026-08-06 15:09:23 +02:00
gtp.c net: iptunnel: fix stale transport header during tunnel decapsulation 2026-08-28 15:53:46 -07:00
ifb.c net: ifb: report ethtool stats over num_tx_queues 2026-05-14 18:40:04 -07:00
Kconfig
LICENSE.SRC
loopback.c
macsec.c macsec: initialize SecY before registering the netdevice 2026-09-24 15:15:20 +02:00
macvlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-13 11:00:14 -07:00
macvtap.c
Makefile
mdio.c
mhi_net.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
mii.c
net_failover.c net: net_failover: Fix the deadlock in net_failover_slave_name_change() 2026-09-10 15:19:06 +02:00
netconsole.c netconsole: publish the userdata payload with RCU 2026-08-13 15:04:40 +02:00
netkit.c net: change ndo_set_rx_mode_async return type to int 2026-06-09 18:15:29 -07:00
nlmon.c
ntb_netdev.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
pfcp.c pfcp: Support per-netns netdev unregistration. 2026-08-05 17:44:06 -07:00
rionet.c
sungem_phy.c
tap.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-13 11:00:14 -07:00
tun_vnet.h tun: no longer rely on RTNL in tun_fill_info() 2026-07-10 17:29:43 +02:00
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-08-18 10:42:41 -07:00
veth.c veth: manage XDP program pointers during channel resize 2026-09-23 16:53:57 -07:00
virtio_net.c virtio_net: copy zerocopy frags in start_xmit without NAPI 2026-09-22 18:32:57 -07:00
vrf.c vrf: Stop corrupting skb->csum when capturing CHECKSUM_COMPLETE packets 2026-09-23 17:47:10 -07:00
vsockmon.c
xen-netfront.c