mac820154: move mutex locks out of loop
Instead of always re-lock the iflist_mtx at multiple interfaces we lock the complete for each loop at start and at the end. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
d14e1c71cf
commit
2789e6297f
|
@ -540,11 +540,11 @@ void ieee802154_remove_interfaces(struct ieee802154_local *local)
|
||||||
{
|
{
|
||||||
struct ieee802154_sub_if_data *sdata, *tmp;
|
struct ieee802154_sub_if_data *sdata, *tmp;
|
||||||
|
|
||||||
|
mutex_lock(&local->iflist_mtx);
|
||||||
list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) {
|
list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) {
|
||||||
mutex_lock(&sdata->local->iflist_mtx);
|
|
||||||
list_del(&sdata->list);
|
list_del(&sdata->list);
|
||||||
mutex_unlock(&sdata->local->iflist_mtx);
|
|
||||||
|
|
||||||
unregister_netdevice(sdata->dev);
|
unregister_netdevice(sdata->dev);
|
||||||
}
|
}
|
||||||
|
mutex_unlock(&local->iflist_mtx);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue