regulatory: simplify restore_regulatory_settings
authorJohannes Berg <johannes.berg@intel.com>
Mon, 3 Dec 2012 17:56:41 +0000 (18:56 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 3 Jan 2013 12:01:24 +0000 (13:01 +0100)
Use list_splice_tail_init() and also simplify the locking.

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

index 57812dfc297b09e3ab5943732d0330966b004e3f..87daba95639c73a285bbb07b1916f2768e8dc07b 100644 (file)
@@ -1878,9 +1878,6 @@ static void restore_regulatory_settings(bool reset_user)
                        restore_custom_reg_settings(&rdev->wiphy);
        }
 
-       mutex_unlock(&reg_mutex);
-       mutex_unlock(&cfg80211_mutex);
-
        regulatory_hint_core(world_alpha2);
 
        /*
@@ -1891,18 +1888,8 @@ static void restore_regulatory_settings(bool reset_user)
        if (is_an_alpha2(alpha2))
                regulatory_hint_user(user_alpha2, NL80211_USER_REG_HINT_USER);
 
-       if (list_empty(&tmp_reg_req_list))
-               return;
-
-       mutex_lock(&cfg80211_mutex);
-       mutex_lock(&reg_mutex);
-
        spin_lock(&reg_requests_lock);
-       list_for_each_entry_safe(reg_request, tmp, &tmp_reg_req_list, list) {
-               REG_DBG_PRINT("Adding request for country %c%c back into the queue\n",
-                             reg_request->alpha2[0], reg_request->alpha2[1]);
-               list_move_tail(&reg_request->list, &reg_requests_list);
-       }
+       list_splice_tail_init(&tmp_reg_req_list, &reg_requests_list);
        spin_unlock(&reg_requests_lock);
 
        mutex_unlock(&reg_mutex);