From 93a82315d855aafccc77c7c3734cd44af280fc1e Mon Sep 17 00:00:00 2001 From: Rajkumar Manoharan Date: Thu, 8 Dec 2011 23:59:26 +0530 Subject: [PATCH] --- yaml --- r: 278893 b: refs/heads/master c: 4a38994f1c43351b4aaca01ae93bd574f5b5075e h: refs/heads/master i: 278891: aaba5f80589206abbc823b4fa7cb0440b4a1c907 v: v3 --- [refs] | 2 +- trunk/net/wireless/reg.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index b61c9106d4a9..ff86813bd41b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 687f545ecf5600cf43717f937d94d859e105574c +refs/heads/master: 4a38994f1c43351b4aaca01ae93bd574f5b5075e diff --git a/trunk/net/wireless/reg.c b/trunk/net/wireless/reg.c index 70b171a52aea..2f5b0505c95d 100644 --- a/trunk/net/wireless/reg.c +++ b/trunk/net/wireless/reg.c @@ -1163,9 +1163,21 @@ void regulatory_update(struct wiphy *wiphy, static void update_all_wiphy_regulatory(enum nl80211_reg_initiator initiator) { struct cfg80211_registered_device *rdev; + struct wiphy *wiphy; - list_for_each_entry(rdev, &cfg80211_rdev_list, list) - wiphy_update_regulatory(&rdev->wiphy, initiator); + list_for_each_entry(rdev, &cfg80211_rdev_list, list) { + wiphy = &rdev->wiphy; + wiphy_update_regulatory(wiphy, initiator); + /* + * Regulatory updates set by CORE are ignored for custom + * regulatory cards. Let us notify the changes to the driver, + * as some drivers used this to restore its orig_* reg domain. + */ + if (initiator == NL80211_REGDOM_SET_BY_CORE && + wiphy->flags & WIPHY_FLAG_CUSTOM_REGULATORY && + wiphy->reg_notifier) + wiphy->reg_notifier(wiphy, last_request); + } } static void handle_channel_custom(struct wiphy *wiphy,