mirror of https://gitee.com/openkylin/linux.git
mac80211_hwsim: refactor radio cleanup
Refactor the radio cleanup into a new function to later allow deleting a single radio from the list. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
f39c2bfa9a
commit
e4afb603c0
|
@ -1623,25 +1623,29 @@ static const struct ieee80211_ops mac80211_hwsim_ops = {
|
||||||
|
|
||||||
static struct ieee80211_ops mac80211_hwsim_mchan_ops;
|
static struct ieee80211_ops mac80211_hwsim_mchan_ops;
|
||||||
|
|
||||||
|
static void mac80211_hwsim_destroy_radio(struct mac80211_hwsim_data *data)
|
||||||
|
{
|
||||||
|
debugfs_remove_recursive(data->debugfs);
|
||||||
|
ieee80211_unregister_hw(data->hw);
|
||||||
|
device_release_driver(data->dev);
|
||||||
|
device_unregister(data->dev);
|
||||||
|
ieee80211_free_hw(data->hw);
|
||||||
|
}
|
||||||
|
|
||||||
static void mac80211_hwsim_free(void)
|
static void mac80211_hwsim_free(void)
|
||||||
{
|
{
|
||||||
struct list_head tmplist, *i, *tmp;
|
struct mac80211_hwsim_data *data;
|
||||||
struct mac80211_hwsim_data *data, *tmpdata;
|
|
||||||
|
|
||||||
INIT_LIST_HEAD(&tmplist);
|
|
||||||
|
|
||||||
spin_lock_bh(&hwsim_radio_lock);
|
spin_lock_bh(&hwsim_radio_lock);
|
||||||
list_for_each_safe(i, tmp, &hwsim_radios)
|
while ((data = list_first_entry_or_null(&hwsim_radios,
|
||||||
list_move(i, &tmplist);
|
struct mac80211_hwsim_data,
|
||||||
spin_unlock_bh(&hwsim_radio_lock);
|
list))) {
|
||||||
|
list_del(&data->list);
|
||||||
list_for_each_entry_safe(data, tmpdata, &tmplist, list) {
|
spin_unlock_bh(&hwsim_radio_lock);
|
||||||
debugfs_remove_recursive(data->debugfs);
|
mac80211_hwsim_destroy_radio(data);
|
||||||
ieee80211_unregister_hw(data->hw);
|
spin_lock_bh(&hwsim_radio_lock);
|
||||||
device_release_driver(data->dev);
|
|
||||||
device_unregister(data->dev);
|
|
||||||
ieee80211_free_hw(data->hw);
|
|
||||||
}
|
}
|
||||||
|
spin_unlock_bh(&hwsim_radio_lock);
|
||||||
class_destroy(hwsim_class);
|
class_destroy(hwsim_class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue