Return-path: Received: from wolverine01.qualcomm.com ([199.106.114.254]:29331 "EHLO wolverine01.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751356Ab1LHSdS (ORCPT ); Thu, 8 Dec 2011 13:33:18 -0500 From: Rajkumar Manoharan To: CC: , Rajkumar Manoharan , Paul Stewart Subject: [PATCH RESEND 4/4] cfg80211: notify core hints that helps to restore regd settings Date: Thu, 8 Dec 2011 23:59:26 +0530 Message-ID: <1323368966-10001-4-git-send-email-rmanohar@qca.qualcomm.com> (sfid-20111208_193322_302120_72F5E95B) In-Reply-To: <1323368966-10001-1-git-send-email-rmanohar@qca.qualcomm.com> References: <1323368966-10001-1-git-send-email-rmanohar@qca.qualcomm.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-wireless-owner@vger.kernel.org List-ID: Regulatory updates set by CORE are ignored for custom regulatory cards. Let us notify the changes to the driver, as some drivers uses core hint to restore its orig_* reg domain setting. Cc: Paul Stewart Signed-off-by: Rajkumar Manoharan Acked-by: Luis R. Rodriguez --- net/wireless/reg.c | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/net/wireless/reg.c b/net/wireless/reg.c index db958ba..c45c8b7 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -1175,9 +1175,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, -- 1.7.8