ath: fix logic on ath_reg_apply_active_scan_flags()
authorLuis R. Rodriguez <mcgrof@do-not-panic.com>
Mon, 21 Oct 2013 17:14:47 +0000 (19:14 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 5 Dec 2013 20:09:56 +0000 (15:09 -0500)
The existing logic removes the passive scan flag from
channels 12 and 13 when a regulatory hint coming from
something other than a country IE has been passed. This
is incorrect, the original intention was to ensure we
always have passive scan enabled for these two channels
for a specific set of custom world 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: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/regd.c

index d3bbf48522b62e1af70cdea2685c74d3ab25d29f..3d596e25ba82abb17062438be9f449211dcd596c 100644 (file)
@@ -249,16 +249,16 @@ ath_reg_apply_active_scan_flags(struct wiphy *wiphy,
                return;
 
        /*
-        * If no country IE has been received always enable active scan
-        * on these channels. This is only done for specific regulatory SKUs
+        * If no country IE has been received always enable passive scan
+        * and no-ibss on these channels. This is only done for specific
+        * regulatory SKUs.
         */
        if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) {
                ch = &sband->channels[11]; /* CH 12 */
-               if (ch->flags & IEEE80211_CHAN_NO_IR)
-                       ch->flags &= ~IEEE80211_CHAN_NO_IR;
+               ch->flags |= IEEE80211_CHAN_NO_IR;
+
                ch = &sband->channels[12]; /* CH 13 */
-               if (ch->flags & IEEE80211_CHAN_NO_IR)
-                       ch->flags &= ~IEEE80211_CHAN_NO_IR;
+               ch->flags |= IEEE80211_CHAN_NO_IR;
                return;
        }