|
@@ -2382,34 +2382,29 @@ void regulatory_exit(void)
|
|
|
cancel_work_sync(®_work);
|
|
|
cancel_delayed_work_sync(®_timeout);
|
|
|
|
|
|
+ /* Lock to suppress warnings */
|
|
|
mutex_lock(&cfg80211_mutex);
|
|
|
mutex_lock(®_mutex);
|
|
|
-
|
|
|
reset_regdomains(true);
|
|
|
+ mutex_unlock(&cfg80211_mutex);
|
|
|
+ mutex_unlock(®_mutex);
|
|
|
|
|
|
dev_set_uevent_suppress(®_pdev->dev, true);
|
|
|
|
|
|
platform_device_unregister(reg_pdev);
|
|
|
|
|
|
- spin_lock_bh(®_pending_beacons_lock);
|
|
|
list_for_each_entry_safe(reg_beacon, btmp, ®_pending_beacons, list) {
|
|
|
list_del(®_beacon->list);
|
|
|
kfree(reg_beacon);
|
|
|
}
|
|
|
- spin_unlock_bh(®_pending_beacons_lock);
|
|
|
|
|
|
list_for_each_entry_safe(reg_beacon, btmp, ®_beacon_list, list) {
|
|
|
list_del(®_beacon->list);
|
|
|
kfree(reg_beacon);
|
|
|
}
|
|
|
|
|
|
- spin_lock(®_requests_lock);
|
|
|
list_for_each_entry_safe(reg_request, tmp, ®_requests_list, list) {
|
|
|
list_del(®_request->list);
|
|
|
kfree(reg_request);
|
|
|
}
|
|
|
- spin_unlock(®_requests_lock);
|
|
|
-
|
|
|
- mutex_unlock(®_mutex);
|
|
|
- mutex_unlock(&cfg80211_mutex);
|
|
|
}
|