/* Remove all interfaces, may only be called at hardware unregistration time because it doesn't do RCU-safe list removals.  */
void ieee80211_remove_interfaces(struct ieee80211_local *local)
/* Remove all interfaces, may only be called at hardware unregistration time because it doesn't do RCU-safe list removals.  */
void ieee80211_remove_interfaces(struct ieee80211_local *local)
{
	struct ieee80211_sub_if_data *sdata, *tmp;
	LIST_HEAD(unreg_list);
	ASSERT_RTNL();
	mutex_lock(&local->iflist_mtx);
	list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) {
		list_del(&sdata->list);
		unregister_netdevice_queue(sdata->dev, &unreg_list);
	}
	mutex_unlock(&local->iflist_mtx);
	unregister_netdevice_many(&unreg_list);
}