|
@@ -526,8 +526,6 @@ static void mac802154_wpan_free(struct net_device *dev)
|
|
|
struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
|
|
|
|
|
|
mac802154_llsec_destroy(&sdata->sec);
|
|
|
-
|
|
|
- free_netdev(dev);
|
|
|
}
|
|
|
|
|
|
static void ieee802154_if_setup(struct net_device *dev)
|
|
@@ -593,7 +591,8 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata,
|
|
|
sdata->dev->dev_addr);
|
|
|
|
|
|
sdata->dev->header_ops = &mac802154_header_ops;
|
|
|
- sdata->dev->destructor = mac802154_wpan_free;
|
|
|
+ sdata->dev->needs_free_netdev = true;
|
|
|
+ sdata->dev->priv_destructor = mac802154_wpan_free;
|
|
|
sdata->dev->netdev_ops = &mac802154_wpan_ops;
|
|
|
sdata->dev->ml_priv = &mac802154_mlme_wpan;
|
|
|
wpan_dev->promiscuous_mode = false;
|
|
@@ -608,7 +607,7 @@ ieee802154_setup_sdata(struct ieee802154_sub_if_data *sdata,
|
|
|
|
|
|
break;
|
|
|
case NL802154_IFTYPE_MONITOR:
|
|
|
- sdata->dev->destructor = free_netdev;
|
|
|
+ sdata->dev->needs_free_netdev = true;
|
|
|
sdata->dev->netdev_ops = &mac802154_monitor_ops;
|
|
|
wpan_dev->promiscuous_mode = true;
|
|
|
break;
|