Re: [syzbot] Re: [syzbot] [wpan?] [usb?] BUG: corrupted list in ieee802154_if_remove
From: syzbot
Date: Fri Nov 08 2024 - 04:31:52 EST
For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx.
***
Subject: Re: [syzbot] [wpan?] [usb?] BUG: corrupted list in ieee802154_if_remove
Author: lizhi.xu@xxxxxxxxxxxxx
net device has been unregistered ?
#syz test
diff --git a/net/mac802154/iface.c b/net/mac802154/iface.c
index c0e2da5072be..57de7ca7954b 100644
--- a/net/mac802154/iface.c
+++ b/net/mac802154/iface.c
@@ -683,6 +683,10 @@ void ieee802154_if_remove(struct ieee802154_sub_if_data *sdata)
{
ASSERT_RTNL();
+ printk("sd: %p, sdl: %p, dev: %p, %s\n", sdata, sdata->list, sdata->dev, __func__);
+ if (sdata->dev->reg_state == NETREG_UNREGISTERING)
+ return;
+
mutex_lock(&sdata->local->iflist_mtx);
list_del_rcu(&sdata->list);
mutex_unlock(&sdata->local->iflist_mtx);
@@ -697,6 +701,7 @@ void ieee802154_remove_interfaces(struct ieee802154_local *local)
mutex_lock(&local->iflist_mtx);
list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) {
+ printk("sd: %p, sdl: %p, dev: %p, %s\n", sdata, sdata->list, sdata->dev, __func__);
list_del(&sdata->list);
unregister_netdevice(sdata->dev);