diff --git a/net/mac802154/cfg.c b/net/mac802154/cfg.c index 0c69b44ba312..3f9afad1f612 100644 --- a/net/mac802154/cfg.c +++ b/net/mac802154/cfg.c @@ -28,7 +28,9 @@ ieee802154_add_iface_deprecated(struct wpan_phy *wpan_phy, static void ieee802154_del_iface_deprecated(struct wpan_phy *wpan_phy, struct net_device *dev) { - mac802154_del_iface(wpan_phy, dev); + struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); + + ieee802154_if_remove(sdata); } const struct cfg802154_ops mac802154_config_ops = { diff --git a/net/mac802154/ieee802154_i.h b/net/mac802154/ieee802154_i.h index 27e17e6bcf18..61a6a0fd39ad 100644 --- a/net/mac802154/ieee802154_i.h +++ b/net/mac802154/ieee802154_i.h @@ -175,6 +175,6 @@ void mac802154_unlock_table(struct net_device *dev); struct net_device * mac802154_add_iface(struct wpan_phy *phy, const char *name, int type); -void mac802154_del_iface(struct wpan_phy *phy, struct net_device *dev); +void ieee802154_if_remove(struct ieee802154_sub_if_data *sdata); #endif /* __IEEE802154_I_H */ diff --git a/net/mac802154/iface.c b/net/mac802154/iface.c index 0c9d00c83654..9d6012e430de 100644 --- a/net/mac802154/iface.c +++ b/net/mac802154/iface.c @@ -443,3 +443,15 @@ void mac802154_monitor_setup(struct net_device *dev) sdata->promisuous_mode = true; } + +void ieee802154_if_remove(struct ieee802154_sub_if_data *sdata) +{ + ASSERT_RTNL(); + + mutex_lock(&sdata->local->iflist_mtx); + list_del_rcu(&sdata->list); + mutex_unlock(&sdata->local->iflist_mtx); + + synchronize_rcu(); + unregister_netdevice(sdata->dev); +} diff --git a/net/mac802154/main.c b/net/mac802154/main.c index b34ddbf43c3d..333d33daec6e 100644 --- a/net/mac802154/main.c +++ b/net/mac802154/main.c @@ -59,22 +59,6 @@ mac802154_netdev_register(struct wpan_phy *phy, struct net_device *dev) return 0; } -void mac802154_del_iface(struct wpan_phy *phy, struct net_device *dev) -{ - struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev); - - ASSERT_RTNL(); - - BUG_ON(sdata->local->phy != phy); - - mutex_lock(&sdata->local->iflist_mtx); - list_del_rcu(&sdata->list); - mutex_unlock(&sdata->local->iflist_mtx); - - synchronize_rcu(); - unregister_netdevice(sdata->dev); -} - struct net_device * mac802154_add_iface(struct wpan_phy *phy, const char *name, int type) {