cfg80211: enable regulatory hints for strict custom settings
authorLuis R. Rodriguez <mcgrof@do-not-panic.com>
Thu, 3 Oct 2013 01:33:09 +0000 (18:33 -0700)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 11 Oct 2013 13:30:55 +0000 (15:30 +0200)
If we have a wiphy with an ISO3166-alpha2 regulatory domain
programmed with the strict flag set we wait until the wiphy
gets its wiphy->regd programmed before allowing regulatory
domains hints other than country IE hints from processing
on the wiphy. The existing check however discards the
possibility of custom regulatory domains having also used
the strict flag and these will not have the wiphy->regd
set. Custom strict regulatory domains never set the wiphy->regd
though as such currently all regulatory hints other than
country IE hints are being ignored on these wiphys.

All custom strict regulatory domains set the wiphy with the
WIPHY_FLAG_CUSTOM_REGULATORY and use wiphy_apply_custom_regulatory().
Enhance the check for the strict ISO3166-alpha2 regulatory domain
case by exempting the WIPHY_FLAG_CUSTOM_REGULATORY case. This
will enable other regulatory hints to be processed now for
these strict custom regulatory domains.

Cc: smihir@qti.qualcomm.com
Cc: tushnimb@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/reg.c

index 8fbe664fdcf88c9ec7e338e7838448d12dd4177e..37c2a63d0697c10c43096cb6f7daf7e4d1e786f7 100644 (file)
@@ -997,6 +997,7 @@ static bool ignore_reg_update(struct wiphy *wiphy,
         */
        if (wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY && !wiphy->regd &&
            initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE &&
+           !(wiphy->flags & WIPHY_FLAG_CUSTOM_REGULATORY) &&
            !is_world_regdom(lr->alpha2)) {
                REG_DBG_PRINT("Ignoring regulatory request %s since the driver requires its own regulatory domain to be set first\n",
                              reg_initiator_name(initiator));