regulatory: remove useless locking on exit
authorJohannes Berg <johannes.berg@intel.com>
Mon, 3 Dec 2012 16:59:24 +0000 (17:59 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 3 Jan 2013 12:01:22 +0000 (13:01 +0100)
It would be a major problem if anything were to run
concurrently while the module is being unloaded so
remove the locking that doesn't help anything.

Acked-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/reg.c

index cf2fb3425a63e67014e06d63312283e7f8a1c8b2..cf4386fade8aeccc3bbdcab0ce5199f1401dc385 100644 (file)
@@ -2382,34 +2382,29 @@ void regulatory_exit(void)
        cancel_work_sync(&reg_work);
        cancel_delayed_work_sync(&reg_timeout);
 
+       /* Lock to suppress warnings */
        mutex_lock(&cfg80211_mutex);
        mutex_lock(&reg_mutex);
-
        reset_regdomains(true);
+       mutex_unlock(&cfg80211_mutex);
+       mutex_unlock(&reg_mutex);
 
        dev_set_uevent_suppress(&reg_pdev->dev, true);
 
        platform_device_unregister(reg_pdev);
 
-       spin_lock_bh(&reg_pending_beacons_lock);
        list_for_each_entry_safe(reg_beacon, btmp, &reg_pending_beacons, list) {
                list_del(&reg_beacon->list);
                kfree(reg_beacon);
        }
-       spin_unlock_bh(&reg_pending_beacons_lock);
 
        list_for_each_entry_safe(reg_beacon, btmp, &reg_beacon_list, list) {
                list_del(&reg_beacon->list);
                kfree(reg_beacon);
        }
 
-       spin_lock(&reg_requests_lock);
        list_for_each_entry_safe(reg_request, tmp, &reg_requests_list, list) {
                list_del(&reg_request->list);
                kfree(reg_request);
        }
-       spin_unlock(&reg_requests_lock);
-
-       mutex_unlock(&reg_mutex);
-       mutex_unlock(&cfg80211_mutex);
 }