regulatory: remove locking from wiphy_apply_custom_regulatory
authorJohannes Berg <johannes.berg@intel.com>
Mon, 3 Dec 2012 23:19:24 +0000 (00:19 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 3 Jan 2013 12:01:27 +0000 (13:01 +0100)
wiphy_apply_custom_regulatory() doesn't have to hold
the regulatory mutex as it only modifies the given
wiphy with the given regulatory domain, it doesn't
access any global regulatory data.

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

index 603a01911a5052448d34c8c70979e462404b8f8a..752729ecd701ae62bc5164835c35021aa9e2286a 100644 (file)
@@ -1225,8 +1225,6 @@ static void handle_channel_custom(struct wiphy *wiphy,
        const struct ieee80211_power_rule *power_rule = NULL;
        const struct ieee80211_freq_range *freq_range = NULL;
 
-       assert_reg_lock();
-
        r = freq_reg_info_regd(wiphy, MHZ_TO_KHZ(chan->center_freq),
                               desired_bw_khz, &reg_rule, regd);
 
@@ -1271,14 +1269,12 @@ void wiphy_apply_custom_regulatory(struct wiphy *wiphy,
        enum ieee80211_band band;
        unsigned int bands_set = 0;
 
-       mutex_lock(&reg_mutex);
        for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
                if (!wiphy->bands[band])
                        continue;
                handle_band_custom(wiphy, wiphy->bands[band], regd);
                bands_set++;
        }
-       mutex_unlock(&reg_mutex);
 
        /*
         * no point in calling this if it won't have any effect