aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless
diff options
context:
space:
mode:
Diffstat (limited to 'net/wireless')
-rw-r--r--net/wireless/reg.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 70b171a52aea..2f5b0505c95d 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -1163,9 +1163,21 @@ void regulatory_update(struct wiphy *wiphy,
1163static void update_all_wiphy_regulatory(enum nl80211_reg_initiator initiator) 1163static void update_all_wiphy_regulatory(enum nl80211_reg_initiator initiator)
1164{ 1164{
1165 struct cfg80211_registered_device *rdev; 1165 struct cfg80211_registered_device *rdev;
1166 struct wiphy *wiphy;
1166 1167
1167 list_for_each_entry(rdev, &cfg80211_rdev_list, list) 1168 list_for_each_entry(rdev, &cfg80211_rdev_list, list) {
1168 wiphy_update_regulatory(&rdev->wiphy, initiator); 1169 wiphy = &rdev->wiphy;
1170 wiphy_update_regulatory(wiphy, initiator);
1171 /*
1172 * Regulatory updates set by CORE are ignored for custom
1173 * regulatory cards. Let us notify the changes to the driver,
1174 * as some drivers used this to restore its orig_* reg domain.
1175 */
1176 if (initiator == NL80211_REGDOM_SET_BY_CORE &&
1177 wiphy->flags & WIPHY_FLAG_CUSTOM_REGULATORY &&
1178 wiphy->reg_notifier)
1179 wiphy->reg_notifier(wiphy, last_request);
1180 }
1169} 1181}
1170 1182
1171static void handle_channel_custom(struct wiphy *wiphy, 1183static void handle_channel_custom(struct wiphy *wiphy,