aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis R. Rodriguez <mcgrof@do-not-panic.com>2013-10-21 13:22:25 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-11-25 14:49:35 -0500
commit8fe02e167efa8ed4a4503a5eedc0f49fcb7e3eb9 (patch)
tree751497c11ae0b02cd90113a379e1fc35c84783ac
parentc17bff87bed4bda1835ee41dc908e926414d8d85 (diff)
cfg80211: consolidate passive-scan and no-ibss flags
These two flags are used for the same purpose, just combine them into a no-ir flag to annotate no initiating radiation is allowed. Old userspace sending either flag will have it treated as the no-ir flag. To be considerate to older userspace we also send both the no-ir flag and the old no-ibss flags. Newer userspace will have to be aware of older kernels. Update all places in the tree using these flags with the following semantic patch: @@ @@ -NL80211_RRF_PASSIVE_SCAN +NL80211_RRF_NO_IR @@ @@ -NL80211_RRF_NO_IBSS +NL80211_RRF_NO_IR @@ @@ -IEEE80211_CHAN_PASSIVE_SCAN +IEEE80211_CHAN_NO_IR @@ @@ -IEEE80211_CHAN_NO_IBSS +IEEE80211_CHAN_NO_IR @@ @@ -NL80211_RRF_NO_IR | NL80211_RRF_NO_IR +NL80211_RRF_NO_IR @@ @@ -IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_IR +IEEE80211_CHAN_NO_IR @@ @@ -(NL80211_RRF_NO_IR) +NL80211_RRF_NO_IR @@ @@ -(IEEE80211_CHAN_NO_IR) +IEEE80211_CHAN_NO_IR Along with some hand-optimisations in documentation, to remove duplicates and to fix some indentation. Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> [do all the driver updates in one go] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--Documentation/networking/regulatory.txt4
-rw-r--r--drivers/net/wireless/ath/ath10k/mac.c4
-rw-r--r--drivers/net/wireless/ath/regd.c47
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/p2p.c2
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c10
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/channel.c31
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c66
-rw-r--r--drivers/net/wireless/cw1200/scan.c10
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2100.c4
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2200.c8
-rw-r--r--drivers/net/wireless/iwlegacy/3945-mac.c2
-rw-r--r--drivers/net/wireless/iwlegacy/4965-mac.c2
-rw-r--r--drivers/net/wireless/iwlegacy/common.c4
-rw-r--r--drivers/net/wireless/iwlegacy/debug.c8
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/debugfs.c8
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/scan.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-nvm-parse.c4
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/scan.c4
-rw-r--r--drivers/net/wireless/mac80211_hwsim.c4
-rw-r--r--drivers/net/wireless/mwifiex/cfg80211.c14
-rw-r--r--drivers/net/wireless/mwifiex/scan.c4
-rw-r--r--drivers/net/wireless/rtlwifi/regd.c48
-rw-r--r--drivers/net/wireless/ti/wl12xx/scan.c2
-rw-r--r--drivers/net/wireless/ti/wlcore/cmd.c2
-rw-r--r--drivers/net/wireless/ti/wlcore/main.c3
-rw-r--r--drivers/net/wireless/ti/wlcore/scan.c12
-rw-r--r--include/net/cfg80211.h9
-rw-r--r--include/uapi/linux/nl80211.h30
-rw-r--r--net/mac80211/scan.c10
-rw-r--r--net/mac80211/tx.c3
-rw-r--r--net/wireless/chan.c3
-rw-r--r--net/wireless/genregdb.awk7
-rw-r--r--net/wireless/ibss.c4
-rw-r--r--net/wireless/mesh.c3
-rw-r--r--net/wireless/nl80211.c12
-rw-r--r--net/wireless/reg.c33
37 files changed, 197 insertions, 230 deletions
diff --git a/Documentation/networking/regulatory.txt b/Documentation/networking/regulatory.txt
index 9551622d0a7b..356f791af574 100644
--- a/Documentation/networking/regulatory.txt
+++ b/Documentation/networking/regulatory.txt
@@ -159,10 +159,10 @@ struct ieee80211_regdomain mydriver_jp_regdom = {
159 REG_RULE(2412-20, 2484+20, 40, 6, 20, 0), 159 REG_RULE(2412-20, 2484+20, 40, 6, 20, 0),
160 /* IEEE 802.11a, channels 34..48 */ 160 /* IEEE 802.11a, channels 34..48 */
161 REG_RULE(5170-20, 5240+20, 40, 6, 20, 161 REG_RULE(5170-20, 5240+20, 40, 6, 20,
162 NL80211_RRF_PASSIVE_SCAN), 162 NL80211_RRF_NO_IR),
163 /* IEEE 802.11a, channels 52..64 */ 163 /* IEEE 802.11a, channels 52..64 */
164 REG_RULE(5260-20, 5320+20, 40, 6, 20, 164 REG_RULE(5260-20, 5320+20, 40, 6, 20,
165 NL80211_RRF_NO_IBSS | 165 NL80211_RRF_NO_IR|
166 NL80211_RRF_DFS), 166 NL80211_RRF_DFS),
167 } 167 }
168}; 168};
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 0b1cc516e778..f23d61fda243 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -1351,12 +1351,12 @@ static int ath10k_update_channel_list(struct ath10k *ar)
1351 ch->allow_vht = true; 1351 ch->allow_vht = true;
1352 1352
1353 ch->allow_ibss = 1353 ch->allow_ibss =
1354 !(channel->flags & IEEE80211_CHAN_NO_IBSS); 1354 !(channel->flags & IEEE80211_CHAN_NO_IR);
1355 1355
1356 ch->ht40plus = 1356 ch->ht40plus =
1357 !(channel->flags & IEEE80211_CHAN_NO_HT40PLUS); 1357 !(channel->flags & IEEE80211_CHAN_NO_HT40PLUS);
1358 1358
1359 passive = channel->flags & IEEE80211_CHAN_PASSIVE_SCAN; 1359 passive = channel->flags & IEEE80211_CHAN_NO_IR;
1360 ch->passive = passive; 1360 ch->passive = passive;
1361 1361
1362 ch->freq = channel->center_freq; 1362 ch->freq = channel->center_freq;
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index c00687e05688..e93e517a699f 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -37,17 +37,18 @@ static int __ath_regd_init(struct ath_regulatory *reg);
37 37
38/* We enable active scan on these a case by case basis by regulatory domain */ 38/* We enable active scan on these a case by case basis by regulatory domain */
39#define ATH9K_2GHZ_CH12_13 REG_RULE(2467-10, 2472+10, 40, 0, 20,\ 39#define ATH9K_2GHZ_CH12_13 REG_RULE(2467-10, 2472+10, 40, 0, 20,\
40 NL80211_RRF_PASSIVE_SCAN) 40 NL80211_RRF_NO_IR)
41#define ATH9K_2GHZ_CH14 REG_RULE(2484-10, 2484+10, 40, 0, 20,\ 41#define ATH9K_2GHZ_CH14 REG_RULE(2484-10, 2484+10, 40, 0, 20,\
42 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_OFDM) 42 NL80211_RRF_NO_IR | \
43 NL80211_RRF_NO_OFDM)
43 44
44/* We allow IBSS on these on a case by case basis by regulatory domain */ 45/* We allow IBSS on these on a case by case basis by regulatory domain */
45#define ATH9K_5GHZ_5150_5350 REG_RULE(5150-10, 5350+10, 80, 0, 30,\ 46#define ATH9K_5GHZ_5150_5350 REG_RULE(5150-10, 5350+10, 80, 0, 30,\
46 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) 47 NL80211_RRF_NO_IR)
47#define ATH9K_5GHZ_5470_5850 REG_RULE(5470-10, 5850+10, 80, 0, 30,\ 48#define ATH9K_5GHZ_5470_5850 REG_RULE(5470-10, 5850+10, 80, 0, 30,\
48 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) 49 NL80211_RRF_NO_IR)
49#define ATH9K_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30,\ 50#define ATH9K_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30,\
50 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS) 51 NL80211_RRF_NO_IR)
51 52
52#define ATH9K_2GHZ_ALL ATH9K_2GHZ_CH01_11, \ 53#define ATH9K_2GHZ_ALL ATH9K_2GHZ_CH01_11, \
53 ATH9K_2GHZ_CH12_13, \ 54 ATH9K_2GHZ_CH12_13, \
@@ -223,18 +224,11 @@ ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
223 * default during init, prior to calling our 224 * default during init, prior to calling our
224 * regulatory_hint(). 225 * regulatory_hint().
225 */ 226 */
226 if (!(reg_rule->flags & 227 if (!(reg_rule->flags & NL80211_RRF_NO_IR))
227 NL80211_RRF_NO_IBSS)) 228 ch->flags &= ~IEEE80211_CHAN_NO_IR;
228 ch->flags &=
229 ~IEEE80211_CHAN_NO_IBSS;
230 if (!(reg_rule->flags &
231 NL80211_RRF_PASSIVE_SCAN))
232 ch->flags &=
233 ~IEEE80211_CHAN_PASSIVE_SCAN;
234 } else { 229 } else {
235 if (ch->beacon_found) 230 if (ch->beacon_found)
236 ch->flags &= ~(IEEE80211_CHAN_NO_IBSS | 231 ch->flags &= ~IEEE80211_CHAN_NO_IR;
237 IEEE80211_CHAN_PASSIVE_SCAN);
238 } 232 }
239 } 233 }
240 } 234 }
@@ -260,11 +254,11 @@ ath_reg_apply_active_scan_flags(struct wiphy *wiphy,
260 */ 254 */
261 if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) { 255 if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) {
262 ch = &sband->channels[11]; /* CH 12 */ 256 ch = &sband->channels[11]; /* CH 12 */
263 if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 257 if (ch->flags & IEEE80211_CHAN_NO_IR)
264 ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; 258 ch->flags &= ~IEEE80211_CHAN_NO_IR;
265 ch = &sband->channels[12]; /* CH 13 */ 259 ch = &sband->channels[12]; /* CH 13 */
266 if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 260 if (ch->flags & IEEE80211_CHAN_NO_IR)
267 ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; 261 ch->flags &= ~IEEE80211_CHAN_NO_IR;
268 return; 262 return;
269 } 263 }
270 264
@@ -278,17 +272,17 @@ ath_reg_apply_active_scan_flags(struct wiphy *wiphy,
278 ch = &sband->channels[11]; /* CH 12 */ 272 ch = &sband->channels[11]; /* CH 12 */
279 reg_rule = freq_reg_info(wiphy, ch->center_freq); 273 reg_rule = freq_reg_info(wiphy, ch->center_freq);
280 if (!IS_ERR(reg_rule)) { 274 if (!IS_ERR(reg_rule)) {
281 if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN)) 275 if (!(reg_rule->flags & NL80211_RRF_NO_IR))
282 if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 276 if (ch->flags & IEEE80211_CHAN_NO_IR)
283 ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; 277 ch->flags &= ~IEEE80211_CHAN_NO_IR;
284 } 278 }
285 279
286 ch = &sband->channels[12]; /* CH 13 */ 280 ch = &sband->channels[12]; /* CH 13 */
287 reg_rule = freq_reg_info(wiphy, ch->center_freq); 281 reg_rule = freq_reg_info(wiphy, ch->center_freq);
288 if (!IS_ERR(reg_rule)) { 282 if (!IS_ERR(reg_rule)) {
289 if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN)) 283 if (!(reg_rule->flags & NL80211_RRF_NO_IR))
290 if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 284 if (ch->flags & IEEE80211_CHAN_NO_IR)
291 ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; 285 ch->flags &= ~IEEE80211_CHAN_NO_IR;
292 } 286 }
293} 287}
294 288
@@ -320,8 +314,7 @@ static void ath_reg_apply_radar_flags(struct wiphy *wiphy)
320 */ 314 */
321 if (!(ch->flags & IEEE80211_CHAN_DISABLED)) 315 if (!(ch->flags & IEEE80211_CHAN_DISABLED))
322 ch->flags |= IEEE80211_CHAN_RADAR | 316 ch->flags |= IEEE80211_CHAN_RADAR |
323 IEEE80211_CHAN_NO_IBSS | 317 IEEE80211_CHAN_NO_IR;
324 IEEE80211_CHAN_PASSIVE_SCAN;
325 } 318 }
326} 319}
327 320
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
index d7a974532909..fd0a4971244a 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
@@ -812,7 +812,7 @@ static s32 brcmf_p2p_run_escan(struct brcmf_cfg80211_info *cfg,
812 struct ieee80211_channel *chan = request->channels[i]; 812 struct ieee80211_channel *chan = request->channels[i];
813 813
814 if (chan->flags & (IEEE80211_CHAN_RADAR | 814 if (chan->flags & (IEEE80211_CHAN_RADAR |
815 IEEE80211_CHAN_PASSIVE_SCAN)) 815 IEEE80211_CHAN_NO_IR))
816 continue; 816 continue;
817 817
818 chanspecs[i] = channel_to_chanspec(&p2p->cfg->d11inf, 818 chanspecs[i] = channel_to_chanspec(&p2p->cfg->d11inf,
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
index 571f013cebbb..b6a09f97f9a3 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -202,9 +202,9 @@ static struct ieee80211_supported_band __wl_band_5ghz_a = {
202 202
203/* This is to override regulatory domains defined in cfg80211 module (reg.c) 203/* This is to override regulatory domains defined in cfg80211 module (reg.c)
204 * By default world regulatory domain defined in reg.c puts the flags 204 * By default world regulatory domain defined in reg.c puts the flags
205 * NL80211_RRF_PASSIVE_SCAN and NL80211_RRF_NO_IBSS for 5GHz channels (for 205 * NL80211_RRF_NO_IR for 5GHz channels (for * 36..48 and 149..165).
206 * 36..48 and 149..165). With respect to these flags, wpa_supplicant doesn't 206 * With respect to these flags, wpa_supplicant doesn't * start p2p
207 * start p2p operations on 5GHz channels. All the changes in world regulatory 207 * operations on 5GHz channels. All the changes in world regulatory
208 * domain are to be done here. 208 * domain are to be done here.
209 */ 209 */
210static const struct ieee80211_regdomain brcmf_regdom = { 210static const struct ieee80211_regdomain brcmf_regdom = {
@@ -5197,10 +5197,10 @@ static s32 brcmf_construct_reginfo(struct brcmf_cfg80211_info *cfg, u32 bw_cap)
5197 if (channel & WL_CHAN_RADAR) 5197 if (channel & WL_CHAN_RADAR)
5198 band_chan_arr[index].flags |= 5198 band_chan_arr[index].flags |=
5199 (IEEE80211_CHAN_RADAR | 5199 (IEEE80211_CHAN_RADAR |
5200 IEEE80211_CHAN_NO_IBSS); 5200 IEEE80211_CHAN_NO_IR);
5201 if (channel & WL_CHAN_PASSIVE) 5201 if (channel & WL_CHAN_PASSIVE)
5202 band_chan_arr[index].flags |= 5202 band_chan_arr[index].flags |=
5203 IEEE80211_CHAN_PASSIVE_SCAN; 5203 IEEE80211_CHAN_NO_IR;
5204 } 5204 }
5205 } 5205 }
5206 if (!update) 5206 if (!update)
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/channel.c b/drivers/net/wireless/brcm80211/brcmsmac/channel.c
index cc87926f5055..7d8f3fd69a87 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/channel.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/channel.c
@@ -59,23 +59,18 @@
59 59
60#define BRCM_2GHZ_2412_2462 REG_RULE(2412-10, 2462+10, 40, 0, 19, 0) 60#define BRCM_2GHZ_2412_2462 REG_RULE(2412-10, 2462+10, 40, 0, 19, 0)
61#define BRCM_2GHZ_2467_2472 REG_RULE(2467-10, 2472+10, 20, 0, 19, \ 61#define BRCM_2GHZ_2467_2472 REG_RULE(2467-10, 2472+10, 20, 0, 19, \
62 NL80211_RRF_PASSIVE_SCAN | \ 62 NL80211_RRF_NO_IR)
63 NL80211_RRF_NO_IBSS)
64 63
65#define BRCM_5GHZ_5180_5240 REG_RULE(5180-10, 5240+10, 40, 0, 21, \ 64#define BRCM_5GHZ_5180_5240 REG_RULE(5180-10, 5240+10, 40, 0, 21, \
66 NL80211_RRF_PASSIVE_SCAN | \ 65 NL80211_RRF_NO_IR)
67 NL80211_RRF_NO_IBSS)
68#define BRCM_5GHZ_5260_5320 REG_RULE(5260-10, 5320+10, 40, 0, 21, \ 66#define BRCM_5GHZ_5260_5320 REG_RULE(5260-10, 5320+10, 40, 0, 21, \
69 NL80211_RRF_PASSIVE_SCAN | \
70 NL80211_RRF_DFS | \ 67 NL80211_RRF_DFS | \
71 NL80211_RRF_NO_IBSS) 68 NL80211_RRF_NO_IR)
72#define BRCM_5GHZ_5500_5700 REG_RULE(5500-10, 5700+10, 40, 0, 21, \ 69#define BRCM_5GHZ_5500_5700 REG_RULE(5500-10, 5700+10, 40, 0, 21, \
73 NL80211_RRF_PASSIVE_SCAN | \
74 NL80211_RRF_DFS | \ 70 NL80211_RRF_DFS | \
75 NL80211_RRF_NO_IBSS) 71 NL80211_RRF_NO_IR)
76#define BRCM_5GHZ_5745_5825 REG_RULE(5745-10, 5825+10, 40, 0, 21, \ 72#define BRCM_5GHZ_5745_5825 REG_RULE(5745-10, 5825+10, 40, 0, 21, \
77 NL80211_RRF_PASSIVE_SCAN | \ 73 NL80211_RRF_NO_IR)
78 NL80211_RRF_NO_IBSS)
79 74
80static const struct ieee80211_regdomain brcms_regdom_x2 = { 75static const struct ieee80211_regdomain brcms_regdom_x2 = {
81 .n_reg_rules = 6, 76 .n_reg_rules = 6,
@@ -395,7 +390,7 @@ brcms_c_channel_set_chanspec(struct brcms_cm_info *wlc_cm, u16 chanspec,
395 brcms_c_set_gmode(wlc, wlc->protection->gmode_user, false); 390 brcms_c_set_gmode(wlc, wlc->protection->gmode_user, false);
396 391
397 brcms_b_set_chanspec(wlc->hw, chanspec, 392 brcms_b_set_chanspec(wlc->hw, chanspec,
398 !!(ch->flags & IEEE80211_CHAN_PASSIVE_SCAN), 393 !!(ch->flags & IEEE80211_CHAN_NO_IR),
399 &txpwr); 394 &txpwr);
400} 395}
401 396
@@ -657,8 +652,8 @@ static void brcms_reg_apply_radar_flags(struct wiphy *wiphy)
657 */ 652 */
658 if (!(ch->flags & IEEE80211_CHAN_DISABLED)) 653 if (!(ch->flags & IEEE80211_CHAN_DISABLED))
659 ch->flags |= IEEE80211_CHAN_RADAR | 654 ch->flags |= IEEE80211_CHAN_RADAR |
660 IEEE80211_CHAN_NO_IBSS | 655 IEEE80211_CHAN_NO_IR |
661 IEEE80211_CHAN_PASSIVE_SCAN; 656 IEEE80211_CHAN_NO_IR;
662 } 657 }
663} 658}
664 659
@@ -688,14 +683,10 @@ brcms_reg_apply_beaconing_flags(struct wiphy *wiphy,
688 if (IS_ERR(rule)) 683 if (IS_ERR(rule))
689 continue; 684 continue;
690 685
691 if (!(rule->flags & NL80211_RRF_NO_IBSS)) 686 if (!(rule->flags & NL80211_RRF_NO_IR))
692 ch->flags &= ~IEEE80211_CHAN_NO_IBSS; 687 ch->flags &= ~IEEE80211_CHAN_NO_IR;
693 if (!(rule->flags & NL80211_RRF_PASSIVE_SCAN))
694 ch->flags &=
695 ~IEEE80211_CHAN_PASSIVE_SCAN;
696 } else if (ch->beacon_found) { 688 } else if (ch->beacon_found) {
697 ch->flags &= ~(IEEE80211_CHAN_NO_IBSS | 689 ch->flags &= ~IEEE80211_CHAN_NO_IR;
698 IEEE80211_CHAN_PASSIVE_SCAN);
699 } 690 }
700 } 691 }
701 } 692 }
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
index edc5d105ff98..e71ce8c842a2 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
@@ -125,13 +125,13 @@ static struct ieee80211_channel brcms_2ghz_chantable[] = {
125 CHAN2GHZ(10, 2457, IEEE80211_CHAN_NO_HT40PLUS), 125 CHAN2GHZ(10, 2457, IEEE80211_CHAN_NO_HT40PLUS),
126 CHAN2GHZ(11, 2462, IEEE80211_CHAN_NO_HT40PLUS), 126 CHAN2GHZ(11, 2462, IEEE80211_CHAN_NO_HT40PLUS),
127 CHAN2GHZ(12, 2467, 127 CHAN2GHZ(12, 2467,
128 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_IBSS | 128 IEEE80211_CHAN_NO_IR |
129 IEEE80211_CHAN_NO_HT40PLUS), 129 IEEE80211_CHAN_NO_HT40PLUS),
130 CHAN2GHZ(13, 2472, 130 CHAN2GHZ(13, 2472,
131 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_IBSS | 131 IEEE80211_CHAN_NO_IR |
132 IEEE80211_CHAN_NO_HT40PLUS), 132 IEEE80211_CHAN_NO_HT40PLUS),
133 CHAN2GHZ(14, 2484, 133 CHAN2GHZ(14, 2484,
134 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_IBSS | 134 IEEE80211_CHAN_NO_IR |
135 IEEE80211_CHAN_NO_HT40PLUS | IEEE80211_CHAN_NO_HT40MINUS | 135 IEEE80211_CHAN_NO_HT40PLUS | IEEE80211_CHAN_NO_HT40MINUS |
136 IEEE80211_CHAN_NO_OFDM) 136 IEEE80211_CHAN_NO_OFDM)
137}; 137};
@@ -144,51 +144,51 @@ static struct ieee80211_channel brcms_5ghz_nphy_chantable[] = {
144 CHAN5GHZ(48, IEEE80211_CHAN_NO_HT40PLUS), 144 CHAN5GHZ(48, IEEE80211_CHAN_NO_HT40PLUS),
145 /* UNII-2 */ 145 /* UNII-2 */
146 CHAN5GHZ(52, 146 CHAN5GHZ(52,
147 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 147 IEEE80211_CHAN_RADAR |
148 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS), 148 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
149 CHAN5GHZ(56, 149 CHAN5GHZ(56,
150 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 150 IEEE80211_CHAN_RADAR |
151 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS), 151 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
152 CHAN5GHZ(60, 152 CHAN5GHZ(60,
153 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 153 IEEE80211_CHAN_RADAR |
154 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS), 154 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
155 CHAN5GHZ(64, 155 CHAN5GHZ(64,
156 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 156 IEEE80211_CHAN_RADAR |
157 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS), 157 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
158 /* MID */ 158 /* MID */
159 CHAN5GHZ(100, 159 CHAN5GHZ(100,
160 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 160 IEEE80211_CHAN_RADAR |
161 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS), 161 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
162 CHAN5GHZ(104, 162 CHAN5GHZ(104,
163 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 163 IEEE80211_CHAN_RADAR |
164 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS), 164 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
165 CHAN5GHZ(108, 165 CHAN5GHZ(108,
166 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 166 IEEE80211_CHAN_RADAR |
167 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS), 167 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
168 CHAN5GHZ(112, 168 CHAN5GHZ(112,
169 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 169 IEEE80211_CHAN_RADAR |
170 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS), 170 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
171 CHAN5GHZ(116, 171 CHAN5GHZ(116,
172 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 172 IEEE80211_CHAN_RADAR |
173 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS), 173 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
174 CHAN5GHZ(120, 174 CHAN5GHZ(120,
175 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 175 IEEE80211_CHAN_RADAR |
176 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS), 176 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
177 CHAN5GHZ(124, 177 CHAN5GHZ(124,
178 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 178 IEEE80211_CHAN_RADAR |
179 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS), 179 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
180 CHAN5GHZ(128, 180 CHAN5GHZ(128,
181 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 181 IEEE80211_CHAN_RADAR |
182 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS), 182 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
183 CHAN5GHZ(132, 183 CHAN5GHZ(132,
184 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 184 IEEE80211_CHAN_RADAR |
185 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS), 185 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40MINUS),
186 CHAN5GHZ(136, 186 CHAN5GHZ(136,
187 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 187 IEEE80211_CHAN_RADAR |
188 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS), 188 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS),
189 CHAN5GHZ(140, 189 CHAN5GHZ(140,
190 IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS | 190 IEEE80211_CHAN_RADAR |
191 IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS | 191 IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_HT40PLUS |
192 IEEE80211_CHAN_NO_HT40MINUS), 192 IEEE80211_CHAN_NO_HT40MINUS),
193 /* UNII-3 */ 193 /* UNII-3 */
194 CHAN5GHZ(149, IEEE80211_CHAN_NO_HT40MINUS), 194 CHAN5GHZ(149, IEEE80211_CHAN_NO_HT40MINUS),
diff --git a/drivers/net/wireless/cw1200/scan.c b/drivers/net/wireless/cw1200/scan.c
index ee3c19037aac..8c017bfd2ffc 100644
--- a/drivers/net/wireless/cw1200/scan.c
+++ b/drivers/net/wireless/cw1200/scan.c
@@ -197,9 +197,9 @@ void cw1200_scan_work(struct work_struct *work)
197 if ((*it)->band != first->band) 197 if ((*it)->band != first->band)
198 break; 198 break;
199 if (((*it)->flags ^ first->flags) & 199 if (((*it)->flags ^ first->flags) &
200 IEEE80211_CHAN_PASSIVE_SCAN) 200 IEEE80211_CHAN_NO_IR)
201 break; 201 break;
202 if (!(first->flags & IEEE80211_CHAN_PASSIVE_SCAN) && 202 if (!(first->flags & IEEE80211_CHAN_NO_IR) &&
203 (*it)->max_power != first->max_power) 203 (*it)->max_power != first->max_power)
204 break; 204 break;
205 } 205 }
@@ -210,7 +210,7 @@ void cw1200_scan_work(struct work_struct *work)
210 else 210 else
211 scan.max_tx_rate = WSM_TRANSMIT_RATE_1; 211 scan.max_tx_rate = WSM_TRANSMIT_RATE_1;
212 scan.num_probes = 212 scan.num_probes =
213 (first->flags & IEEE80211_CHAN_PASSIVE_SCAN) ? 0 : 2; 213 (first->flags & IEEE80211_CHAN_NO_IR) ? 0 : 2;
214 scan.num_ssids = priv->scan.n_ssids; 214 scan.num_ssids = priv->scan.n_ssids;
215 scan.ssids = &priv->scan.ssids[0]; 215 scan.ssids = &priv->scan.ssids[0];
216 scan.num_channels = it - priv->scan.curr; 216 scan.num_channels = it - priv->scan.curr;
@@ -233,7 +233,7 @@ void cw1200_scan_work(struct work_struct *work)
233 } 233 }
234 for (i = 0; i < scan.num_channels; ++i) { 234 for (i = 0; i < scan.num_channels; ++i) {
235 scan.ch[i].number = priv->scan.curr[i]->hw_value; 235 scan.ch[i].number = priv->scan.curr[i]->hw_value;
236 if (priv->scan.curr[i]->flags & IEEE80211_CHAN_PASSIVE_SCAN) { 236 if (priv->scan.curr[i]->flags & IEEE80211_CHAN_NO_IR) {
237 scan.ch[i].min_chan_time = 50; 237 scan.ch[i].min_chan_time = 50;
238 scan.ch[i].max_chan_time = 100; 238 scan.ch[i].max_chan_time = 100;
239 } else { 239 } else {
@@ -241,7 +241,7 @@ void cw1200_scan_work(struct work_struct *work)
241 scan.ch[i].max_chan_time = 25; 241 scan.ch[i].max_chan_time = 25;
242 } 242 }
243 } 243 }
244 if (!(first->flags & IEEE80211_CHAN_PASSIVE_SCAN) && 244 if (!(first->flags & IEEE80211_CHAN_NO_IR) &&
245 priv->scan.output_power != first->max_power) { 245 priv->scan.output_power != first->max_power) {
246 priv->scan.output_power = first->max_power; 246 priv->scan.output_power = first->max_power;
247 wsm_set_output_power(priv, 247 wsm_set_output_power(priv,
diff --git a/drivers/net/wireless/ipw2x00/ipw2100.c b/drivers/net/wireless/ipw2x00/ipw2100.c
index f8ab193009cd..813c9af0ebd6 100644
--- a/drivers/net/wireless/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
@@ -1930,10 +1930,10 @@ static int ipw2100_wdev_init(struct net_device *dev)
1930 bg_band->channels[i].max_power = geo->bg[i].max_power; 1930 bg_band->channels[i].max_power = geo->bg[i].max_power;
1931 if (geo->bg[i].flags & LIBIPW_CH_PASSIVE_ONLY) 1931 if (geo->bg[i].flags & LIBIPW_CH_PASSIVE_ONLY)
1932 bg_band->channels[i].flags |= 1932 bg_band->channels[i].flags |=
1933 IEEE80211_CHAN_PASSIVE_SCAN; 1933 IEEE80211_CHAN_NO_IR;
1934 if (geo->bg[i].flags & LIBIPW_CH_NO_IBSS) 1934 if (geo->bg[i].flags & LIBIPW_CH_NO_IBSS)
1935 bg_band->channels[i].flags |= 1935 bg_band->channels[i].flags |=
1936 IEEE80211_CHAN_NO_IBSS; 1936 IEEE80211_CHAN_NO_IR;
1937 if (geo->bg[i].flags & LIBIPW_CH_RADAR_DETECT) 1937 if (geo->bg[i].flags & LIBIPW_CH_RADAR_DETECT)
1938 bg_band->channels[i].flags |= 1938 bg_band->channels[i].flags |=
1939 IEEE80211_CHAN_RADAR; 1939 IEEE80211_CHAN_RADAR;
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
index f394af777cf5..4eca9e20adea 100644
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
@@ -11472,10 +11472,10 @@ static int ipw_wdev_init(struct net_device *dev)
11472 bg_band->channels[i].max_power = geo->bg[i].max_power; 11472 bg_band->channels[i].max_power = geo->bg[i].max_power;
11473 if (geo->bg[i].flags & LIBIPW_CH_PASSIVE_ONLY) 11473 if (geo->bg[i].flags & LIBIPW_CH_PASSIVE_ONLY)
11474 bg_band->channels[i].flags |= 11474 bg_band->channels[i].flags |=
11475 IEEE80211_CHAN_PASSIVE_SCAN; 11475 IEEE80211_CHAN_NO_IR;
11476 if (geo->bg[i].flags & LIBIPW_CH_NO_IBSS) 11476 if (geo->bg[i].flags & LIBIPW_CH_NO_IBSS)
11477 bg_band->channels[i].flags |= 11477 bg_band->channels[i].flags |=
11478 IEEE80211_CHAN_NO_IBSS; 11478 IEEE80211_CHAN_NO_IR;
11479 if (geo->bg[i].flags & LIBIPW_CH_RADAR_DETECT) 11479 if (geo->bg[i].flags & LIBIPW_CH_RADAR_DETECT)
11480 bg_band->channels[i].flags |= 11480 bg_band->channels[i].flags |=
11481 IEEE80211_CHAN_RADAR; 11481 IEEE80211_CHAN_RADAR;
@@ -11511,10 +11511,10 @@ static int ipw_wdev_init(struct net_device *dev)
11511 a_band->channels[i].max_power = geo->a[i].max_power; 11511 a_band->channels[i].max_power = geo->a[i].max_power;
11512 if (geo->a[i].flags & LIBIPW_CH_PASSIVE_ONLY) 11512 if (geo->a[i].flags & LIBIPW_CH_PASSIVE_ONLY)
11513 a_band->channels[i].flags |= 11513 a_band->channels[i].flags |=
11514 IEEE80211_CHAN_PASSIVE_SCAN; 11514 IEEE80211_CHAN_NO_IR;
11515 if (geo->a[i].flags & LIBIPW_CH_NO_IBSS) 11515 if (geo->a[i].flags & LIBIPW_CH_NO_IBSS)
11516 a_band->channels[i].flags |= 11516 a_band->channels[i].flags |=
11517 IEEE80211_CHAN_NO_IBSS; 11517 IEEE80211_CHAN_NO_IR;
11518 if (geo->a[i].flags & LIBIPW_CH_RADAR_DETECT) 11518 if (geo->a[i].flags & LIBIPW_CH_RADAR_DETECT)
11519 a_band->channels[i].flags |= 11519 a_band->channels[i].flags |=
11520 IEEE80211_CHAN_RADAR; 11520 IEEE80211_CHAN_RADAR;
diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
index dea3b50d68b9..5a66595b0faf 100644
--- a/drivers/net/wireless/iwlegacy/3945-mac.c
+++ b/drivers/net/wireless/iwlegacy/3945-mac.c
@@ -1595,7 +1595,7 @@ il3945_get_channels_for_scan(struct il_priv *il, enum ieee80211_band band,
1595 * and use long active_dwell time. 1595 * and use long active_dwell time.
1596 */ 1596 */
1597 if (!is_active || il_is_channel_passive(ch_info) || 1597 if (!is_active || il_is_channel_passive(ch_info) ||
1598 (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN)) { 1598 (chan->flags & IEEE80211_CHAN_NO_IR)) {
1599 scan_ch->type = 0; /* passive */ 1599 scan_ch->type = 0; /* passive */
1600 if (IL_UCODE_API(il->ucode_ver) == 1) 1600 if (IL_UCODE_API(il->ucode_ver) == 1)
1601 scan_ch->active_dwell = 1601 scan_ch->active_dwell =
diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
index 3982ab76f375..1c5f8cdbd3a5 100644
--- a/drivers/net/wireless/iwlegacy/4965-mac.c
+++ b/drivers/net/wireless/iwlegacy/4965-mac.c
@@ -805,7 +805,7 @@ il4965_get_channels_for_scan(struct il_priv *il, struct ieee80211_vif *vif,
805 } 805 }
806 806
807 if (!is_active || il_is_channel_passive(ch_info) || 807 if (!is_active || il_is_channel_passive(ch_info) ||
808 (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN)) 808 (chan->flags & IEEE80211_CHAN_NO_IR))
809 scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE; 809 scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE;
810 else 810 else
811 scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE; 811 scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE;
diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c
index b03e22ef5462..a27b14cfeaec 100644
--- a/drivers/net/wireless/iwlegacy/common.c
+++ b/drivers/net/wireless/iwlegacy/common.c
@@ -3445,10 +3445,10 @@ il_init_geos(struct il_priv *il)
3445 3445
3446 if (il_is_channel_valid(ch)) { 3446 if (il_is_channel_valid(ch)) {
3447 if (!(ch->flags & EEPROM_CHANNEL_IBSS)) 3447 if (!(ch->flags & EEPROM_CHANNEL_IBSS))
3448 geo_ch->flags |= IEEE80211_CHAN_NO_IBSS; 3448 geo_ch->flags |= IEEE80211_CHAN_NO_IR;
3449 3449
3450 if (!(ch->flags & EEPROM_CHANNEL_ACTIVE)) 3450 if (!(ch->flags & EEPROM_CHANNEL_ACTIVE))
3451 geo_ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN; 3451 geo_ch->flags |= IEEE80211_CHAN_NO_IR;
3452 3452
3453 if (ch->flags & EEPROM_CHANNEL_RADAR) 3453 if (ch->flags & EEPROM_CHANNEL_RADAR)
3454 geo_ch->flags |= IEEE80211_CHAN_RADAR; 3454 geo_ch->flags |= IEEE80211_CHAN_RADAR;
diff --git a/drivers/net/wireless/iwlegacy/debug.c b/drivers/net/wireless/iwlegacy/debug.c
index eff26501d60a..3a487a3bb5de 100644
--- a/drivers/net/wireless/iwlegacy/debug.c
+++ b/drivers/net/wireless/iwlegacy/debug.c
@@ -567,12 +567,12 @@ il_dbgfs_channels_read(struct file *file, char __user *user_buf, size_t count,
567 flags & IEEE80211_CHAN_RADAR ? 567 flags & IEEE80211_CHAN_RADAR ?
568 " (IEEE 802.11h required)" : "", 568 " (IEEE 802.11h required)" : "",
569 ((channels[i]. 569 ((channels[i].
570 flags & IEEE80211_CHAN_NO_IBSS) || 570 flags & IEEE80211_CHAN_NO_IR) ||
571 (channels[i]. 571 (channels[i].
572 flags & IEEE80211_CHAN_RADAR)) ? "" : 572 flags & IEEE80211_CHAN_RADAR)) ? "" :
573 ", IBSS", 573 ", IBSS",
574 channels[i]. 574 channels[i].
575 flags & IEEE80211_CHAN_PASSIVE_SCAN ? 575 flags & IEEE80211_CHAN_NO_IR ?
576 "passive only" : "active/passive"); 576 "passive only" : "active/passive");
577 } 577 }
578 supp_band = il_get_hw_mode(il, IEEE80211_BAND_5GHZ); 578 supp_band = il_get_hw_mode(il, IEEE80211_BAND_5GHZ);
@@ -594,12 +594,12 @@ il_dbgfs_channels_read(struct file *file, char __user *user_buf, size_t count,
594 flags & IEEE80211_CHAN_RADAR ? 594 flags & IEEE80211_CHAN_RADAR ?
595 " (IEEE 802.11h required)" : "", 595 " (IEEE 802.11h required)" : "",
596 ((channels[i]. 596 ((channels[i].
597 flags & IEEE80211_CHAN_NO_IBSS) || 597 flags & IEEE80211_CHAN_NO_IR) ||
598 (channels[i]. 598 (channels[i].
599 flags & IEEE80211_CHAN_RADAR)) ? "" : 599 flags & IEEE80211_CHAN_RADAR)) ? "" :
600 ", IBSS", 600 ", IBSS",
601 channels[i]. 601 channels[i].
602 flags & IEEE80211_CHAN_PASSIVE_SCAN ? 602 flags & IEEE80211_CHAN_NO_IR ?
603 "passive only" : "active/passive"); 603 "passive only" : "active/passive");
604 } 604 }
605 ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos); 605 ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
index d94f8ab15004..f69301e505ee 100644
--- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
+++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
@@ -352,12 +352,12 @@ static ssize_t iwl_dbgfs_channels_read(struct file *file, char __user *user_buf,
352 channels[i].max_power, 352 channels[i].max_power,
353 channels[i].flags & IEEE80211_CHAN_RADAR ? 353 channels[i].flags & IEEE80211_CHAN_RADAR ?
354 " (IEEE 802.11h required)" : "", 354 " (IEEE 802.11h required)" : "",
355 ((channels[i].flags & IEEE80211_CHAN_NO_IBSS) 355 ((channels[i].flags & IEEE80211_CHAN_NO_IR)
356 || (channels[i].flags & 356 || (channels[i].flags &
357 IEEE80211_CHAN_RADAR)) ? "" : 357 IEEE80211_CHAN_RADAR)) ? "" :
358 ", IBSS", 358 ", IBSS",
359 channels[i].flags & 359 channels[i].flags &
360 IEEE80211_CHAN_PASSIVE_SCAN ? 360 IEEE80211_CHAN_NO_IR ?
361 "passive only" : "active/passive"); 361 "passive only" : "active/passive");
362 } 362 }
363 supp_band = iwl_get_hw_mode(priv, IEEE80211_BAND_5GHZ); 363 supp_band = iwl_get_hw_mode(priv, IEEE80211_BAND_5GHZ);
@@ -375,12 +375,12 @@ static ssize_t iwl_dbgfs_channels_read(struct file *file, char __user *user_buf,
375 channels[i].max_power, 375 channels[i].max_power,
376 channels[i].flags & IEEE80211_CHAN_RADAR ? 376 channels[i].flags & IEEE80211_CHAN_RADAR ?
377 " (IEEE 802.11h required)" : "", 377 " (IEEE 802.11h required)" : "",
378 ((channels[i].flags & IEEE80211_CHAN_NO_IBSS) 378 ((channels[i].flags & IEEE80211_CHAN_NO_IR)
379 || (channels[i].flags & 379 || (channels[i].flags &
380 IEEE80211_CHAN_RADAR)) ? "" : 380 IEEE80211_CHAN_RADAR)) ? "" :
381 ", IBSS", 381 ", IBSS",
382 channels[i].flags & 382 channels[i].flags &
383 IEEE80211_CHAN_PASSIVE_SCAN ? 383 IEEE80211_CHAN_NO_IR ?
384 "passive only" : "active/passive"); 384 "passive only" : "active/passive");
385 } 385 }
386 ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos); 386 ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
diff --git a/drivers/net/wireless/iwlwifi/dvm/scan.c b/drivers/net/wireless/iwlwifi/dvm/scan.c
index 35e0ee8b4e5b..928f8640a0a7 100644
--- a/drivers/net/wireless/iwlwifi/dvm/scan.c
+++ b/drivers/net/wireless/iwlwifi/dvm/scan.c
@@ -544,7 +544,7 @@ static int iwl_get_channels_for_scan(struct iwl_priv *priv,
544 channel = chan->hw_value; 544 channel = chan->hw_value;
545 scan_ch->channel = cpu_to_le16(channel); 545 scan_ch->channel = cpu_to_le16(channel);
546 546
547 if (!is_active || (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN)) 547 if (!is_active || (chan->flags & IEEE80211_CHAN_NO_IR))
548 scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE; 548 scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE;
549 else 549 else
550 scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE; 550 scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE;
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c b/drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c
index 4c887f365908..f4a6d317a023 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c
@@ -614,10 +614,10 @@ static int iwl_init_channel_map(struct device *dev, const struct iwl_cfg *cfg,
614 channel->flags = IEEE80211_CHAN_NO_HT40; 614 channel->flags = IEEE80211_CHAN_NO_HT40;
615 615
616 if (!(eeprom_ch->flags & EEPROM_CHANNEL_IBSS)) 616 if (!(eeprom_ch->flags & EEPROM_CHANNEL_IBSS))
617 channel->flags |= IEEE80211_CHAN_NO_IBSS; 617 channel->flags |= IEEE80211_CHAN_NO_IR;
618 618
619 if (!(eeprom_ch->flags & EEPROM_CHANNEL_ACTIVE)) 619 if (!(eeprom_ch->flags & EEPROM_CHANNEL_ACTIVE))
620 channel->flags |= IEEE80211_CHAN_PASSIVE_SCAN; 620 channel->flags |= IEEE80211_CHAN_NO_IR;
621 621
622 if (eeprom_ch->flags & EEPROM_CHANNEL_RADAR) 622 if (eeprom_ch->flags & EEPROM_CHANNEL_RADAR)
623 channel->flags |= IEEE80211_CHAN_RADAR; 623 channel->flags |= IEEE80211_CHAN_RADAR;
diff --git a/drivers/net/wireless/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/iwlwifi/iwl-nvm-parse.c
index b76a9a8fc0b3..2fab203d3027 100644
--- a/drivers/net/wireless/iwlwifi/iwl-nvm-parse.c
+++ b/drivers/net/wireless/iwlwifi/iwl-nvm-parse.c
@@ -223,10 +223,10 @@ static int iwl_init_channel_map(struct device *dev, const struct iwl_cfg *cfg,
223 channel->flags |= IEEE80211_CHAN_NO_160MHZ; 223 channel->flags |= IEEE80211_CHAN_NO_160MHZ;
224 224
225 if (!(ch_flags & NVM_CHANNEL_IBSS)) 225 if (!(ch_flags & NVM_CHANNEL_IBSS))
226 channel->flags |= IEEE80211_CHAN_NO_IBSS; 226 channel->flags |= IEEE80211_CHAN_NO_IR;
227 227
228 if (!(ch_flags & NVM_CHANNEL_ACTIVE)) 228 if (!(ch_flags & NVM_CHANNEL_ACTIVE))
229 channel->flags |= IEEE80211_CHAN_PASSIVE_SCAN; 229 channel->flags |= IEEE80211_CHAN_NO_IR;
230 230
231 if (ch_flags & NVM_CHANNEL_RADAR) 231 if (ch_flags & NVM_CHANNEL_RADAR)
232 channel->flags |= IEEE80211_CHAN_RADAR; 232 channel->flags |= IEEE80211_CHAN_RADAR;
diff --git a/drivers/net/wireless/iwlwifi/mvm/scan.c b/drivers/net/wireless/iwlwifi/mvm/scan.c
index dff7592e1ff8..e0cd100b40cd 100644
--- a/drivers/net/wireless/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/iwlwifi/mvm/scan.c
@@ -192,7 +192,7 @@ static void iwl_mvm_scan_fill_channels(struct iwl_scan_cmd *cmd,
192 for (i = 0; i < cmd->channel_count; i++) { 192 for (i = 0; i < cmd->channel_count; i++) {
193 chan->channel = cpu_to_le16(req->channels[i]->hw_value); 193 chan->channel = cpu_to_le16(req->channels[i]->hw_value);
194 chan->type = cpu_to_le32(type); 194 chan->type = cpu_to_le32(type);
195 if (req->channels[i]->flags & IEEE80211_CHAN_PASSIVE_SCAN) 195 if (req->channels[i]->flags & IEEE80211_CHAN_NO_IR)
196 chan->type &= cpu_to_le32(~SCAN_CHANNEL_TYPE_ACTIVE); 196 chan->type &= cpu_to_le32(~SCAN_CHANNEL_TYPE_ACTIVE);
197 chan->active_dwell = cpu_to_le16(active_dwell); 197 chan->active_dwell = cpu_to_le16(active_dwell);
198 chan->passive_dwell = cpu_to_le16(passive_dwell); 198 chan->passive_dwell = cpu_to_le16(passive_dwell);
@@ -642,7 +642,7 @@ static void iwl_build_channel_cfg(struct iwl_mvm *mvm,
642 channels->iter_count[index] = cpu_to_le16(1); 642 channels->iter_count[index] = cpu_to_le16(1);
643 channels->iter_interval[index] = 0; 643 channels->iter_interval[index] = 0;
644 644
645 if (!(s_band->channels[i].flags & IEEE80211_CHAN_PASSIVE_SCAN)) 645 if (!(s_band->channels[i].flags & IEEE80211_CHAN_NO_IR))
646 channels->type[index] |= 646 channels->type[index] |=
647 cpu_to_le32(IWL_SCAN_OFFLOAD_CHANNEL_ACTIVE); 647 cpu_to_le32(IWL_SCAN_OFFLOAD_CHANNEL_ACTIVE);
648 648
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index de0df86704e7..33d4b31995da 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -159,7 +159,7 @@ static const struct ieee80211_regdomain hwsim_world_regdom_custom_02 = {
159 .reg_rules = { 159 .reg_rules = {
160 REG_RULE(2412-10, 2462+10, 40, 0, 20, 0), 160 REG_RULE(2412-10, 2462+10, 40, 0, 20, 0),
161 REG_RULE(5725-10, 5850+10, 40, 0, 30, 161 REG_RULE(5725-10, 5850+10, 40, 0, 30,
162 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS), 162 NL80211_RRF_NO_IR),
163 } 163 }
164}; 164};
165 165
@@ -1485,7 +1485,7 @@ static void hw_scan_work(struct work_struct *work)
1485 req->channels[hwsim->scan_chan_idx]->center_freq); 1485 req->channels[hwsim->scan_chan_idx]->center_freq);
1486 1486
1487 hwsim->tmp_chan = req->channels[hwsim->scan_chan_idx]; 1487 hwsim->tmp_chan = req->channels[hwsim->scan_chan_idx];
1488 if (hwsim->tmp_chan->flags & IEEE80211_CHAN_PASSIVE_SCAN || 1488 if (hwsim->tmp_chan->flags & IEEE80211_CHAN_NO_IR ||
1489 !req->n_ssids) { 1489 !req->n_ssids) {
1490 dwell = 120; 1490 dwell = 120;
1491 } else { 1491 } else {
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c
index fbad00a5abc8..7f68943f02c2 100644
--- a/drivers/net/wireless/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/mwifiex/cfg80211.c
@@ -50,24 +50,24 @@ static const struct ieee80211_regdomain mwifiex_world_regdom_custom = {
50 REG_RULE(2412-10, 2462+10, 40, 3, 20, 0), 50 REG_RULE(2412-10, 2462+10, 40, 3, 20, 0),
51 /* Channel 12 - 13 */ 51 /* Channel 12 - 13 */
52 REG_RULE(2467-10, 2472+10, 20, 3, 20, 52 REG_RULE(2467-10, 2472+10, 20, 3, 20,
53 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS), 53 NL80211_RRF_NO_IR),
54 /* Channel 14 */ 54 /* Channel 14 */
55 REG_RULE(2484-10, 2484+10, 20, 3, 20, 55 REG_RULE(2484-10, 2484+10, 20, 3, 20,
56 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS | 56 NL80211_RRF_NO_IR |
57 NL80211_RRF_NO_OFDM), 57 NL80211_RRF_NO_OFDM),
58 /* Channel 36 - 48 */ 58 /* Channel 36 - 48 */
59 REG_RULE(5180-10, 5240+10, 40, 3, 20, 59 REG_RULE(5180-10, 5240+10, 40, 3, 20,
60 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS), 60 NL80211_RRF_NO_IR),
61 /* Channel 149 - 165 */ 61 /* Channel 149 - 165 */
62 REG_RULE(5745-10, 5825+10, 40, 3, 20, 62 REG_RULE(5745-10, 5825+10, 40, 3, 20,
63 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS), 63 NL80211_RRF_NO_IR),
64 /* Channel 52 - 64 */ 64 /* Channel 52 - 64 */
65 REG_RULE(5260-10, 5320+10, 40, 3, 30, 65 REG_RULE(5260-10, 5320+10, 40, 3, 30,
66 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS | 66 NL80211_RRF_NO_IR |
67 NL80211_RRF_DFS), 67 NL80211_RRF_DFS),
68 /* Channel 100 - 140 */ 68 /* Channel 100 - 140 */
69 REG_RULE(5500-10, 5700+10, 40, 3, 30, 69 REG_RULE(5500-10, 5700+10, 40, 3, 30,
70 NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS | 70 NL80211_RRF_NO_IR |
71 NL80211_RRF_DFS), 71 NL80211_RRF_DFS),
72 } 72 }
73}; 73};
@@ -1968,7 +1968,7 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
1968 user_scan_cfg->chan_list[i].chan_number = chan->hw_value; 1968 user_scan_cfg->chan_list[i].chan_number = chan->hw_value;
1969 user_scan_cfg->chan_list[i].radio_type = chan->band; 1969 user_scan_cfg->chan_list[i].radio_type = chan->band;
1970 1970
1971 if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) 1971 if (chan->flags & IEEE80211_CHAN_NO_IR)
1972 user_scan_cfg->chan_list[i].scan_type = 1972 user_scan_cfg->chan_list[i].scan_type =
1973 MWIFIEX_SCAN_TYPE_PASSIVE; 1973 MWIFIEX_SCAN_TYPE_PASSIVE;
1974 else 1974 else
diff --git a/drivers/net/wireless/mwifiex/scan.c b/drivers/net/wireless/mwifiex/scan.c
index 8cf7d50a7603..0ed06646f19a 100644
--- a/drivers/net/wireless/mwifiex/scan.c
+++ b/drivers/net/wireless/mwifiex/scan.c
@@ -515,14 +515,14 @@ mwifiex_scan_create_channel_list(struct mwifiex_private *priv,
515 scan_chan_list[chan_idx].max_scan_time = 515 scan_chan_list[chan_idx].max_scan_time =
516 cpu_to_le16((u16) user_scan_in-> 516 cpu_to_le16((u16) user_scan_in->
517 chan_list[0].scan_time); 517 chan_list[0].scan_time);
518 else if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 518 else if (ch->flags & IEEE80211_CHAN_NO_IR)
519 scan_chan_list[chan_idx].max_scan_time = 519 scan_chan_list[chan_idx].max_scan_time =
520 cpu_to_le16(adapter->passive_scan_time); 520 cpu_to_le16(adapter->passive_scan_time);
521 else 521 else
522 scan_chan_list[chan_idx].max_scan_time = 522 scan_chan_list[chan_idx].max_scan_time =
523 cpu_to_le16(adapter->active_scan_time); 523 cpu_to_le16(adapter->active_scan_time);
524 524
525 if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 525 if (ch->flags & IEEE80211_CHAN_NO_IR)
526 scan_chan_list[chan_idx].chan_scan_mode_bitmap 526 scan_chan_list[chan_idx].chan_scan_mode_bitmap
527 |= MWIFIEX_PASSIVE_SCAN; 527 |= MWIFIEX_PASSIVE_SCAN;
528 else 528 else
diff --git a/drivers/net/wireless/rtlwifi/regd.c b/drivers/net/wireless/rtlwifi/regd.c
index d7d0d4948b01..8453c53143f5 100644
--- a/drivers/net/wireless/rtlwifi/regd.c
+++ b/drivers/net/wireless/rtlwifi/regd.c
@@ -59,30 +59,26 @@ static struct country_code_to_enum_rd allCountries[] = {
59 */ 59 */
60#define RTL819x_2GHZ_CH12_13 \ 60#define RTL819x_2GHZ_CH12_13 \
61 REG_RULE(2467-10, 2472+10, 40, 0, 20,\ 61 REG_RULE(2467-10, 2472+10, 40, 0, 20,\
62 NL80211_RRF_PASSIVE_SCAN) 62 NL80211_RRF_NO_IR)
63 63
64#define RTL819x_2GHZ_CH14 \ 64#define RTL819x_2GHZ_CH14 \
65 REG_RULE(2484-10, 2484+10, 40, 0, 20, \ 65 REG_RULE(2484-10, 2484+10, 40, 0, 20, \
66 NL80211_RRF_PASSIVE_SCAN | \ 66 NL80211_RRF_NO_IR | NL80211_RRF_NO_OFDM)
67 NL80211_RRF_NO_OFDM)
68 67
69/* 5G chan 36 - chan 64*/ 68/* 5G chan 36 - chan 64*/
70#define RTL819x_5GHZ_5150_5350 \ 69#define RTL819x_5GHZ_5150_5350 \
71 REG_RULE(5150-10, 5350+10, 40, 0, 30, \ 70 REG_RULE(5150-10, 5350+10, 40, 0, 30, \
72 NL80211_RRF_PASSIVE_SCAN | \ 71 NL80211_RRF_NO_IR)
73 NL80211_RRF_NO_IBSS)
74 72
75/* 5G chan 100 - chan 165*/ 73/* 5G chan 100 - chan 165*/
76#define RTL819x_5GHZ_5470_5850 \ 74#define RTL819x_5GHZ_5470_5850 \
77 REG_RULE(5470-10, 5850+10, 40, 0, 30, \ 75 REG_RULE(5470-10, 5850+10, 40, 0, 30, \
78 NL80211_RRF_PASSIVE_SCAN | \ 76 NL80211_RRF_NO_IR)
79 NL80211_RRF_NO_IBSS)
80 77
81/* 5G chan 149 - chan 165*/ 78/* 5G chan 149 - chan 165*/
82#define RTL819x_5GHZ_5725_5850 \ 79#define RTL819x_5GHZ_5725_5850 \
83 REG_RULE(5725-10, 5850+10, 40, 0, 30, \ 80 REG_RULE(5725-10, 5850+10, 40, 0, 30, \
84 NL80211_RRF_PASSIVE_SCAN | \ 81 NL80211_RRF_NO_IR)
85 NL80211_RRF_NO_IBSS)
86 82
87#define RTL819x_5GHZ_ALL \ 83#define RTL819x_5GHZ_ALL \
88 (RTL819x_5GHZ_5150_5350, RTL819x_5GHZ_5470_5850) 84 (RTL819x_5GHZ_5150_5350, RTL819x_5GHZ_5470_5850)
@@ -185,16 +181,11 @@ static void _rtl_reg_apply_beaconing_flags(struct wiphy *wiphy,
185 *regulatory_hint(). 181 *regulatory_hint().
186 */ 182 */
187 183
188 if (!(reg_rule->flags & NL80211_RRF_NO_IBSS)) 184 if (!(reg_rule->flags & NL80211_RRF_NO_IR))
189 ch->flags &= ~IEEE80211_CHAN_NO_IBSS; 185 ch->flags &= ~IEEE80211_CHAN_NO_IR;
190 if (!(reg_rule->
191 flags & NL80211_RRF_PASSIVE_SCAN))
192 ch->flags &=
193 ~IEEE80211_CHAN_PASSIVE_SCAN;
194 } else { 186 } else {
195 if (ch->beacon_found) 187 if (ch->beacon_found)
196 ch->flags &= ~(IEEE80211_CHAN_NO_IBSS | 188 ch->flags &= ~IEEE80211_CHAN_NO_IR;
197 IEEE80211_CHAN_PASSIVE_SCAN);
198 } 189 }
199 } 190 }
200 } 191 }
@@ -219,11 +210,11 @@ static void _rtl_reg_apply_active_scan_flags(struct wiphy *wiphy,
219 */ 210 */
220 if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) { 211 if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) {
221 ch = &sband->channels[11]; /* CH 12 */ 212 ch = &sband->channels[11]; /* CH 12 */
222 if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 213 if (ch->flags & IEEE80211_CHAN_NO_IR)
223 ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; 214 ch->flags &= ~IEEE80211_CHAN_NO_IR;
224 ch = &sband->channels[12]; /* CH 13 */ 215 ch = &sband->channels[12]; /* CH 13 */
225 if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 216 if (ch->flags & IEEE80211_CHAN_NO_IR)
226 ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; 217 ch->flags &= ~IEEE80211_CHAN_NO_IR;
227 return; 218 return;
228 } 219 }
229 220
@@ -237,17 +228,17 @@ static void _rtl_reg_apply_active_scan_flags(struct wiphy *wiphy,
237 ch = &sband->channels[11]; /* CH 12 */ 228 ch = &sband->channels[11]; /* CH 12 */
238 reg_rule = freq_reg_info(wiphy, ch->center_freq); 229 reg_rule = freq_reg_info(wiphy, ch->center_freq);
239 if (!IS_ERR(reg_rule)) { 230 if (!IS_ERR(reg_rule)) {
240 if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN)) 231 if (!(reg_rule->flags & NL80211_RRF_NO_IR))
241 if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 232 if (ch->flags & IEEE80211_CHAN_NO_IR)
242 ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; 233 ch->flags &= ~IEEE80211_CHAN_NO_IR;
243 } 234 }
244 235
245 ch = &sband->channels[12]; /* CH 13 */ 236 ch = &sband->channels[12]; /* CH 13 */
246 reg_rule = freq_reg_info(wiphy, ch->center_freq); 237 reg_rule = freq_reg_info(wiphy, ch->center_freq);
247 if (!IS_ERR(reg_rule)) { 238 if (!IS_ERR(reg_rule)) {
248 if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN)) 239 if (!(reg_rule->flags & NL80211_RRF_NO_IR))
249 if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) 240 if (ch->flags & IEEE80211_CHAN_NO_IR)
250 ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; 241 ch->flags &= ~IEEE80211_CHAN_NO_IR;
251 } 242 }
252} 243}
253 244
@@ -284,8 +275,7 @@ static void _rtl_reg_apply_radar_flags(struct wiphy *wiphy)
284 */ 275 */
285 if (!(ch->flags & IEEE80211_CHAN_DISABLED)) 276 if (!(ch->flags & IEEE80211_CHAN_DISABLED))
286 ch->flags |= IEEE80211_CHAN_RADAR | 277 ch->flags |= IEEE80211_CHAN_RADAR |
287 IEEE80211_CHAN_NO_IBSS | 278 IEEE80211_CHAN_NO_IR;
288 IEEE80211_CHAN_PASSIVE_SCAN;
289 } 279 }
290} 280}
291 281
diff --git a/drivers/net/wireless/ti/wl12xx/scan.c b/drivers/net/wireless/ti/wl12xx/scan.c
index 4a0bbb13806b..7541bd1a4a4b 100644
--- a/drivers/net/wireless/ti/wl12xx/scan.c
+++ b/drivers/net/wireless/ti/wl12xx/scan.c
@@ -47,7 +47,7 @@ static int wl1271_get_scan_channels(struct wl1271 *wl,
47 * In active scans, we only scan channels not 47 * In active scans, we only scan channels not
48 * marked as passive. 48 * marked as passive.
49 */ 49 */
50 (passive || !(flags & IEEE80211_CHAN_PASSIVE_SCAN))) { 50 (passive || !(flags & IEEE80211_CHAN_NO_IR))) {
51 wl1271_debug(DEBUG_SCAN, "band %d, center_freq %d ", 51 wl1271_debug(DEBUG_SCAN, "band %d, center_freq %d ",
52 req->channels[i]->band, 52 req->channels[i]->band,
53 req->channels[i]->center_freq); 53 req->channels[i]->center_freq);
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c
index 34d9dfff2ad3..9b2ecf52449f 100644
--- a/drivers/net/wireless/ti/wlcore/cmd.c
+++ b/drivers/net/wireless/ti/wlcore/cmd.c
@@ -1688,7 +1688,7 @@ int wlcore_cmd_regdomain_config_locked(struct wl1271 *wl)
1688 1688
1689 if (channel->flags & (IEEE80211_CHAN_DISABLED | 1689 if (channel->flags & (IEEE80211_CHAN_DISABLED |
1690 IEEE80211_CHAN_RADAR | 1690 IEEE80211_CHAN_RADAR |
1691 IEEE80211_CHAN_PASSIVE_SCAN)) 1691 IEEE80211_CHAN_NO_IR))
1692 continue; 1692 continue;
1693 1693
1694 ch_bit_idx = wlcore_get_reg_conf_ch_idx(b, ch); 1694 ch_bit_idx = wlcore_get_reg_conf_ch_idx(b, ch);
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index 0368b9cbfb89..e9da47cead58 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -91,8 +91,7 @@ static void wl1271_reg_notify(struct wiphy *wiphy,
91 continue; 91 continue;
92 92
93 if (ch->flags & IEEE80211_CHAN_RADAR) 93 if (ch->flags & IEEE80211_CHAN_RADAR)
94 ch->flags |= IEEE80211_CHAN_NO_IBSS | 94 ch->flags |= IEEE80211_CHAN_NO_IR;
95 IEEE80211_CHAN_PASSIVE_SCAN;
96 95
97 } 96 }
98 97
diff --git a/drivers/net/wireless/ti/wlcore/scan.c b/drivers/net/wireless/ti/wlcore/scan.c
index 7ed86203304b..1e3d51cd673a 100644
--- a/drivers/net/wireless/ti/wlcore/scan.c
+++ b/drivers/net/wireless/ti/wlcore/scan.c
@@ -188,16 +188,14 @@ wlcore_scan_get_channels(struct wl1271 *wl,
188 flags = req_channels[i]->flags; 188 flags = req_channels[i]->flags;
189 189
190 if (force_passive) 190 if (force_passive)
191 flags |= IEEE80211_CHAN_PASSIVE_SCAN; 191 flags |= IEEE80211_CHAN_NO_IR;
192 192
193 if ((req_channels[i]->band == band) && 193 if ((req_channels[i]->band == band) &&
194 !(flags & IEEE80211_CHAN_DISABLED) && 194 !(flags & IEEE80211_CHAN_DISABLED) &&
195 (!!(flags & IEEE80211_CHAN_RADAR) == radar) && 195 (!!(flags & IEEE80211_CHAN_RADAR) == radar) &&
196 /* if radar is set, we ignore the passive flag */ 196 /* if radar is set, we ignore the passive flag */
197 (radar || 197 (radar ||
198 !!(flags & IEEE80211_CHAN_PASSIVE_SCAN) == passive)) { 198 !!(flags & IEEE80211_CHAN_NO_IR) == passive)) {
199
200
201 if (flags & IEEE80211_CHAN_RADAR) { 199 if (flags & IEEE80211_CHAN_RADAR) {
202 channels[j].flags |= SCAN_CHANNEL_FLAGS_DFS; 200 channels[j].flags |= SCAN_CHANNEL_FLAGS_DFS;
203 201
@@ -220,7 +218,7 @@ wlcore_scan_get_channels(struct wl1271 *wl,
220 (band == IEEE80211_BAND_2GHZ) && 218 (band == IEEE80211_BAND_2GHZ) &&
221 (channels[j].channel >= 12) && 219 (channels[j].channel >= 12) &&
222 (channels[j].channel <= 14) && 220 (channels[j].channel <= 14) &&
223 (flags & IEEE80211_CHAN_PASSIVE_SCAN) && 221 (flags & IEEE80211_CHAN_NO_IR) &&
224 !force_passive) { 222 !force_passive) {
225 /* pactive channels treated as DFS */ 223 /* pactive channels treated as DFS */
226 channels[j].flags = SCAN_CHANNEL_FLAGS_DFS; 224 channels[j].flags = SCAN_CHANNEL_FLAGS_DFS;
@@ -243,8 +241,8 @@ wlcore_scan_get_channels(struct wl1271 *wl,
243 max_dwell_time_active, 241 max_dwell_time_active,
244 flags & IEEE80211_CHAN_RADAR ? 242 flags & IEEE80211_CHAN_RADAR ?
245 ", DFS" : "", 243 ", DFS" : "",
246 flags & IEEE80211_CHAN_PASSIVE_SCAN ? 244 flags & IEEE80211_CHAN_NO_IR ?
247 ", PASSIVE" : ""); 245 ", NO-IR" : "");
248 j++; 246 j++;
249 } 247 }
250 } 248 }
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 3eae46cb1acf..c1b887413234 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -91,9 +91,8 @@ enum ieee80211_band {
91 * Channel flags set by the regulatory control code. 91 * Channel flags set by the regulatory control code.
92 * 92 *
93 * @IEEE80211_CHAN_DISABLED: This channel is disabled. 93 * @IEEE80211_CHAN_DISABLED: This channel is disabled.
94 * @IEEE80211_CHAN_PASSIVE_SCAN: Only passive scanning is permitted 94 * @IEEE80211_CHAN_NO_IR: do not initiate radiation, this includes
95 * on this channel. 95 * sending probe requests or beaconing.
96 * @IEEE80211_CHAN_NO_IBSS: IBSS is not allowed on this channel.
97 * @IEEE80211_CHAN_RADAR: Radar detection is required on this channel. 96 * @IEEE80211_CHAN_RADAR: Radar detection is required on this channel.
98 * @IEEE80211_CHAN_NO_HT40PLUS: extension channel above this channel 97 * @IEEE80211_CHAN_NO_HT40PLUS: extension channel above this channel
99 * is not permitted. 98 * is not permitted.
@@ -113,8 +112,8 @@ enum ieee80211_band {
113 */ 112 */
114enum ieee80211_channel_flags { 113enum ieee80211_channel_flags {
115 IEEE80211_CHAN_DISABLED = 1<<0, 114 IEEE80211_CHAN_DISABLED = 1<<0,
116 IEEE80211_CHAN_PASSIVE_SCAN = 1<<1, 115 IEEE80211_CHAN_NO_IR = 1<<1,
117 IEEE80211_CHAN_NO_IBSS = 1<<2, 116 /* hole at 1<<2 */
118 IEEE80211_CHAN_RADAR = 1<<3, 117 IEEE80211_CHAN_RADAR = 1<<3,
119 IEEE80211_CHAN_NO_HT40PLUS = 1<<4, 118 IEEE80211_CHAN_NO_HT40PLUS = 1<<4,
120 IEEE80211_CHAN_NO_HT40MINUS = 1<<5, 119 IEEE80211_CHAN_NO_HT40MINUS = 1<<5,
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 3d8325bb50cd..7e25164adfe9 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -2231,10 +2231,9 @@ enum nl80211_band_attr {
2231 * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz 2231 * @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
2232 * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current 2232 * @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current
2233 * regulatory domain. 2233 * regulatory domain.
2234 * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is 2234 * @NL80211_FREQUENCY_ATTR_NO_IR: no mechanisms that initiate radiation
2235 * permitted on this channel in current regulatory domain. 2235 * are permitted on this channel, this includes sending probe
2236 * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted 2236 * requests, or modes of operation that require beaconing.
2237 * on this channel in current regulatory domain.
2238 * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory 2237 * @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
2239 * on this channel in current regulatory domain. 2238 * on this channel in current regulatory domain.
2240 * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm 2239 * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
@@ -2261,8 +2260,8 @@ enum nl80211_frequency_attr {
2261 __NL80211_FREQUENCY_ATTR_INVALID, 2260 __NL80211_FREQUENCY_ATTR_INVALID,
2262 NL80211_FREQUENCY_ATTR_FREQ, 2261 NL80211_FREQUENCY_ATTR_FREQ,
2263 NL80211_FREQUENCY_ATTR_DISABLED, 2262 NL80211_FREQUENCY_ATTR_DISABLED,
2264 NL80211_FREQUENCY_ATTR_PASSIVE_SCAN, 2263 NL80211_FREQUENCY_ATTR_NO_IR,
2265 NL80211_FREQUENCY_ATTR_NO_IBSS, 2264 __NL80211_FREQUENCY_ATTR_NO_IBSS,
2266 NL80211_FREQUENCY_ATTR_RADAR, 2265 NL80211_FREQUENCY_ATTR_RADAR,
2267 NL80211_FREQUENCY_ATTR_MAX_TX_POWER, 2266 NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
2268 NL80211_FREQUENCY_ATTR_DFS_STATE, 2267 NL80211_FREQUENCY_ATTR_DFS_STATE,
@@ -2278,6 +2277,9 @@ enum nl80211_frequency_attr {
2278}; 2277};
2279 2278
2280#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER 2279#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
2280#define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR
2281#define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR
2282#define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR
2281 2283
2282/** 2284/**
2283 * enum nl80211_bitrate_attr - bitrate attributes 2285 * enum nl80211_bitrate_attr - bitrate attributes
@@ -2420,8 +2422,9 @@ enum nl80211_sched_scan_match_attr {
2420 * @NL80211_RRF_DFS: DFS support is required to be used 2422 * @NL80211_RRF_DFS: DFS support is required to be used
2421 * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links 2423 * @NL80211_RRF_PTP_ONLY: this is only for Point To Point links
2422 * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links 2424 * @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links
2423 * @NL80211_RRF_PASSIVE_SCAN: passive scan is required 2425 * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed,
2424 * @NL80211_RRF_NO_IBSS: no IBSS is allowed 2426 * this includes probe requests or modes of operation that require
2427 * beaconing.
2425 */ 2428 */
2426enum nl80211_reg_rule_flags { 2429enum nl80211_reg_rule_flags {
2427 NL80211_RRF_NO_OFDM = 1<<0, 2430 NL80211_RRF_NO_OFDM = 1<<0,
@@ -2431,10 +2434,17 @@ enum nl80211_reg_rule_flags {
2431 NL80211_RRF_DFS = 1<<4, 2434 NL80211_RRF_DFS = 1<<4,
2432 NL80211_RRF_PTP_ONLY = 1<<5, 2435 NL80211_RRF_PTP_ONLY = 1<<5,
2433 NL80211_RRF_PTMP_ONLY = 1<<6, 2436 NL80211_RRF_PTMP_ONLY = 1<<6,
2434 NL80211_RRF_PASSIVE_SCAN = 1<<7, 2437 NL80211_RRF_NO_IR = 1<<7,
2435 NL80211_RRF_NO_IBSS = 1<<8, 2438 __NL80211_RRF_NO_IBSS = 1<<8,
2436}; 2439};
2437 2440
2441#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
2442#define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
2443#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
2444
2445/* For backport compatibility with older userspace */
2446#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
2447
2438/** 2448/**
2439 * enum nl80211_dfs_regions - regulatory DFS regions 2449 * enum nl80211_dfs_regions - regulatory DFS regions
2440 * 2450 *
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 5ad66a83ef7f..c22cbb57b49d 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -526,7 +526,7 @@ static int __ieee80211_start_scan(struct ieee80211_sub_if_data *sdata,
526 ieee80211_hw_config(local, 0); 526 ieee80211_hw_config(local, 0);
527 527
528 if ((req->channels[0]->flags & 528 if ((req->channels[0]->flags &
529 IEEE80211_CHAN_PASSIVE_SCAN) || 529 IEEE80211_CHAN_NO_IR) ||
530 !local->scan_req->n_ssids) { 530 !local->scan_req->n_ssids) {
531 next_delay = IEEE80211_PASSIVE_CHANNEL_TIME; 531 next_delay = IEEE80211_PASSIVE_CHANNEL_TIME;
532 } else { 532 } else {
@@ -572,7 +572,7 @@ ieee80211_scan_get_channel_time(struct ieee80211_channel *chan)
572 * TODO: channel switching also consumes quite some time, 572 * TODO: channel switching also consumes quite some time,
573 * add that delay as well to get a better estimation 573 * add that delay as well to get a better estimation
574 */ 574 */
575 if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) 575 if (chan->flags & IEEE80211_CHAN_NO_IR)
576 return IEEE80211_PASSIVE_CHANNEL_TIME; 576 return IEEE80211_PASSIVE_CHANNEL_TIME;
577 return IEEE80211_PROBE_DELAY + IEEE80211_CHANNEL_TIME; 577 return IEEE80211_PROBE_DELAY + IEEE80211_CHANNEL_TIME;
578} 578}
@@ -696,7 +696,7 @@ static void ieee80211_scan_state_set_channel(struct ieee80211_local *local,
696 * 696 *
697 * In any case, it is not necessary for a passive scan. 697 * In any case, it is not necessary for a passive scan.
698 */ 698 */
699 if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN || 699 if (chan->flags & IEEE80211_CHAN_NO_IR ||
700 !local->scan_req->n_ssids) { 700 !local->scan_req->n_ssids) {
701 *next_delay = IEEE80211_PASSIVE_CHANNEL_TIME; 701 *next_delay = IEEE80211_PASSIVE_CHANNEL_TIME;
702 local->next_scan_state = SCAN_DECISION; 702 local->next_scan_state = SCAN_DECISION;
@@ -881,7 +881,7 @@ int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
881 struct ieee80211_channel *tmp_ch = 881 struct ieee80211_channel *tmp_ch =
882 &local->hw.wiphy->bands[band]->channels[i]; 882 &local->hw.wiphy->bands[band]->channels[i];
883 883
884 if (tmp_ch->flags & (IEEE80211_CHAN_NO_IBSS | 884 if (tmp_ch->flags & (IEEE80211_CHAN_NO_IR |
885 IEEE80211_CHAN_DISABLED)) 885 IEEE80211_CHAN_DISABLED))
886 continue; 886 continue;
887 887
@@ -895,7 +895,7 @@ int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
895 895
896 local->int_scan_req->n_channels = n_ch; 896 local->int_scan_req->n_channels = n_ch;
897 } else { 897 } else {
898 if (WARN_ON_ONCE(chan->flags & (IEEE80211_CHAN_NO_IBSS | 898 if (WARN_ON_ONCE(chan->flags & (IEEE80211_CHAN_NO_IR |
899 IEEE80211_CHAN_DISABLED))) 899 IEEE80211_CHAN_DISABLED)))
900 goto unlock; 900 goto unlock;
901 901
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index c558b246ef00..5ad2e8b1f92c 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1724,8 +1724,7 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
1724 * radar detection by itself. We can do that later by adding a 1724 * radar detection by itself. We can do that later by adding a
1725 * monitor flag interfaces used for AP support. 1725 * monitor flag interfaces used for AP support.
1726 */ 1726 */
1727 if ((chan->flags & (IEEE80211_CHAN_NO_IBSS | IEEE80211_CHAN_RADAR | 1727 if ((chan->flags & (IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_RADAR)))
1728 IEEE80211_CHAN_PASSIVE_SCAN)))
1729 goto fail_rcu; 1728 goto fail_rcu;
1730 1729
1731 ieee80211_xmit(sdata, skb, chan->band); 1730 ieee80211_xmit(sdata, skb, chan->band);
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index 9b8cc877eb19..344966496b70 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -467,8 +467,7 @@ bool cfg80211_reg_can_beacon(struct wiphy *wiphy,
467 467
468 res = cfg80211_chandef_usable(wiphy, chandef, 468 res = cfg80211_chandef_usable(wiphy, chandef,
469 IEEE80211_CHAN_DISABLED | 469 IEEE80211_CHAN_DISABLED |
470 IEEE80211_CHAN_PASSIVE_SCAN | 470 IEEE80211_CHAN_NO_IR |
471 IEEE80211_CHAN_NO_IBSS |
472 IEEE80211_CHAN_RADAR); 471 IEEE80211_CHAN_RADAR);
473 472
474 trace_cfg80211_return_bool(res); 473 trace_cfg80211_return_bool(res);
diff --git a/net/wireless/genregdb.awk b/net/wireless/genregdb.awk
index 42ed274e81f4..c808619ac9c6 100644
--- a/net/wireless/genregdb.awk
+++ b/net/wireless/genregdb.awk
@@ -107,10 +107,13 @@ active && /^[ \t]*\(/ {
107 } else if (flagarray[arg] == "PTMP-ONLY") { 107 } else if (flagarray[arg] == "PTMP-ONLY") {
108 flags = flags "\n\t\t\tNL80211_RRF_PTMP_ONLY | " 108 flags = flags "\n\t\t\tNL80211_RRF_PTMP_ONLY | "
109 } else if (flagarray[arg] == "PASSIVE-SCAN") { 109 } else if (flagarray[arg] == "PASSIVE-SCAN") {
110 flags = flags "\n\t\t\tNL80211_RRF_PASSIVE_SCAN | " 110 flags = flags "\n\t\t\tNL80211_RRF_NO_IR | "
111 } else if (flagarray[arg] == "NO-IBSS") { 111 } else if (flagarray[arg] == "NO-IBSS") {
112 flags = flags "\n\t\t\tNL80211_RRF_NO_IBSS | " 112 flags = flags "\n\t\t\tNL80211_RRF_NO_IR | "
113 } else if (flagarray[arg] == "NO-IR") {
114 flags = flags "\n\t\t\tNL80211_RRF_NO_IR | "
113 } 115 }
116
114 } 117 }
115 flags = flags "0" 118 flags = flags "0"
116 printf "\t\tREG_RULE(%d, %d, %d, %d, %d, %s),\n", start, end, bw, gain, power, flags 119 printf "\t\tREG_RULE(%d, %d, %d, %d, %d, %s),\n", start, end, bw, gain, power, flags
diff --git a/net/wireless/ibss.c b/net/wireless/ibss.c
index 9d797df56649..f79105712949 100644
--- a/net/wireless/ibss.c
+++ b/net/wireless/ibss.c
@@ -274,7 +274,7 @@ int cfg80211_ibss_wext_join(struct cfg80211_registered_device *rdev,
274 274
275 for (i = 0; i < sband->n_channels; i++) { 275 for (i = 0; i < sband->n_channels; i++) {
276 chan = &sband->channels[i]; 276 chan = &sband->channels[i];
277 if (chan->flags & IEEE80211_CHAN_NO_IBSS) 277 if (chan->flags & IEEE80211_CHAN_NO_IR)
278 continue; 278 continue;
279 if (chan->flags & IEEE80211_CHAN_DISABLED) 279 if (chan->flags & IEEE80211_CHAN_DISABLED)
280 continue; 280 continue;
@@ -345,7 +345,7 @@ int cfg80211_ibss_wext_siwfreq(struct net_device *dev,
345 chan = ieee80211_get_channel(wdev->wiphy, freq); 345 chan = ieee80211_get_channel(wdev->wiphy, freq);
346 if (!chan) 346 if (!chan)
347 return -EINVAL; 347 return -EINVAL;
348 if (chan->flags & IEEE80211_CHAN_NO_IBSS || 348 if (chan->flags & IEEE80211_CHAN_NO_IR ||
349 chan->flags & IEEE80211_CHAN_DISABLED) 349 chan->flags & IEEE80211_CHAN_DISABLED)
350 return -EINVAL; 350 return -EINVAL;
351 } 351 }
diff --git a/net/wireless/mesh.c b/net/wireless/mesh.c
index 0553fd4d85ae..b0e1869de7de 100644
--- a/net/wireless/mesh.c
+++ b/net/wireless/mesh.c
@@ -141,8 +141,7 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
141 141
142 for (i = 0; i < sband->n_channels; i++) { 142 for (i = 0; i < sband->n_channels; i++) {
143 chan = &sband->channels[i]; 143 chan = &sband->channels[i];
144 if (chan->flags & (IEEE80211_CHAN_NO_IBSS | 144 if (chan->flags & (IEEE80211_CHAN_NO_IR |
145 IEEE80211_CHAN_PASSIVE_SCAN |
146 IEEE80211_CHAN_DISABLED | 145 IEEE80211_CHAN_DISABLED |
147 IEEE80211_CHAN_RADAR)) 146 IEEE80211_CHAN_RADAR))
148 continue; 147 continue;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index a7f4e7902104..41af3a0e9961 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -545,12 +545,12 @@ static int nl80211_msg_put_channel(struct sk_buff *msg,
545 if ((chan->flags & IEEE80211_CHAN_DISABLED) && 545 if ((chan->flags & IEEE80211_CHAN_DISABLED) &&
546 nla_put_flag(msg, NL80211_FREQUENCY_ATTR_DISABLED)) 546 nla_put_flag(msg, NL80211_FREQUENCY_ATTR_DISABLED))
547 goto nla_put_failure; 547 goto nla_put_failure;
548 if ((chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) && 548 if (chan->flags & IEEE80211_CHAN_NO_IR) {
549 nla_put_flag(msg, NL80211_FREQUENCY_ATTR_PASSIVE_SCAN)) 549 if (nla_put_flag(msg, NL80211_FREQUENCY_ATTR_NO_IR))
550 goto nla_put_failure; 550 goto nla_put_failure;
551 if ((chan->flags & IEEE80211_CHAN_NO_IBSS) && 551 if (nla_put_flag(msg, __NL80211_FREQUENCY_ATTR_NO_IBSS))
552 nla_put_flag(msg, NL80211_FREQUENCY_ATTR_NO_IBSS)) 552 goto nla_put_failure;
553 goto nla_put_failure; 553 }
554 if (chan->flags & IEEE80211_CHAN_RADAR) { 554 if (chan->flags & IEEE80211_CHAN_RADAR) {
555 if (nla_put_flag(msg, NL80211_FREQUENCY_ATTR_RADAR)) 555 if (nla_put_flag(msg, NL80211_FREQUENCY_ATTR_RADAR))
556 goto nla_put_failure; 556 goto nla_put_failure;
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 7da67fd0b418..e4e3337ba296 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -163,35 +163,29 @@ static const struct ieee80211_regdomain world_regdom = {
163 REG_RULE(2412-10, 2462+10, 40, 6, 20, 0), 163 REG_RULE(2412-10, 2462+10, 40, 6, 20, 0),
164 /* IEEE 802.11b/g, channels 12..13. */ 164 /* IEEE 802.11b/g, channels 12..13. */
165 REG_RULE(2467-10, 2472+10, 40, 6, 20, 165 REG_RULE(2467-10, 2472+10, 40, 6, 20,
166 NL80211_RRF_PASSIVE_SCAN | 166 NL80211_RRF_NO_IR),
167 NL80211_RRF_NO_IBSS),
168 /* IEEE 802.11 channel 14 - Only JP enables 167 /* IEEE 802.11 channel 14 - Only JP enables
169 * this and for 802.11b only */ 168 * this and for 802.11b only */
170 REG_RULE(2484-10, 2484+10, 20, 6, 20, 169 REG_RULE(2484-10, 2484+10, 20, 6, 20,
171 NL80211_RRF_PASSIVE_SCAN | 170 NL80211_RRF_NO_IR |
172 NL80211_RRF_NO_IBSS |
173 NL80211_RRF_NO_OFDM), 171 NL80211_RRF_NO_OFDM),
174 /* IEEE 802.11a, channel 36..48 */ 172 /* IEEE 802.11a, channel 36..48 */
175 REG_RULE(5180-10, 5240+10, 160, 6, 20, 173 REG_RULE(5180-10, 5240+10, 160, 6, 20,
176 NL80211_RRF_PASSIVE_SCAN | 174 NL80211_RRF_NO_IR),
177 NL80211_RRF_NO_IBSS),
178 175
179 /* IEEE 802.11a, channel 52..64 - DFS required */ 176 /* IEEE 802.11a, channel 52..64 - DFS required */
180 REG_RULE(5260-10, 5320+10, 160, 6, 20, 177 REG_RULE(5260-10, 5320+10, 160, 6, 20,
181 NL80211_RRF_PASSIVE_SCAN | 178 NL80211_RRF_NO_IR |
182 NL80211_RRF_NO_IBSS |
183 NL80211_RRF_DFS), 179 NL80211_RRF_DFS),
184 180
185 /* IEEE 802.11a, channel 100..144 - DFS required */ 181 /* IEEE 802.11a, channel 100..144 - DFS required */
186 REG_RULE(5500-10, 5720+10, 160, 6, 20, 182 REG_RULE(5500-10, 5720+10, 160, 6, 20,
187 NL80211_RRF_PASSIVE_SCAN | 183 NL80211_RRF_NO_IR |
188 NL80211_RRF_NO_IBSS |
189 NL80211_RRF_DFS), 184 NL80211_RRF_DFS),
190 185
191 /* IEEE 802.11a, channel 149..165 */ 186 /* IEEE 802.11a, channel 149..165 */
192 REG_RULE(5745-10, 5825+10, 80, 6, 20, 187 REG_RULE(5745-10, 5825+10, 80, 6, 20,
193 NL80211_RRF_PASSIVE_SCAN | 188 NL80211_RRF_NO_IR),
194 NL80211_RRF_NO_IBSS),
195 189
196 /* IEEE 802.11ad (60gHz), channels 1..3 */ 190 /* IEEE 802.11ad (60gHz), channels 1..3 */
197 REG_RULE(56160+2160*1-1080, 56160+2160*3+1080, 2160, 0, 0, 0), 191 REG_RULE(56160+2160*1-1080, 56160+2160*3+1080, 2160, 0, 0, 0),
@@ -698,10 +692,8 @@ regdom_intersect(const struct ieee80211_regdomain *rd1,
698static u32 map_regdom_flags(u32 rd_flags) 692static u32 map_regdom_flags(u32 rd_flags)
699{ 693{
700 u32 channel_flags = 0; 694 u32 channel_flags = 0;
701 if (rd_flags & NL80211_RRF_PASSIVE_SCAN) 695 if (rd_flags & NL80211_RRF_NO_IR_ALL)
702 channel_flags |= IEEE80211_CHAN_PASSIVE_SCAN; 696 channel_flags |= IEEE80211_CHAN_NO_IR;
703 if (rd_flags & NL80211_RRF_NO_IBSS)
704 channel_flags |= IEEE80211_CHAN_NO_IBSS;
705 if (rd_flags & NL80211_RRF_DFS) 697 if (rd_flags & NL80211_RRF_DFS)
706 channel_flags |= IEEE80211_CHAN_RADAR; 698 channel_flags |= IEEE80211_CHAN_RADAR;
707 if (rd_flags & NL80211_RRF_NO_OFDM) 699 if (rd_flags & NL80211_RRF_NO_OFDM)
@@ -1066,13 +1058,8 @@ static void handle_reg_beacon(struct wiphy *wiphy, unsigned int chan_idx,
1066 chan_before.center_freq = chan->center_freq; 1058 chan_before.center_freq = chan->center_freq;
1067 chan_before.flags = chan->flags; 1059 chan_before.flags = chan->flags;
1068 1060
1069 if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) { 1061 if (chan->flags & IEEE80211_CHAN_NO_IR) {
1070 chan->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; 1062 chan->flags &= ~IEEE80211_CHAN_NO_IR;
1071 channel_changed = true;
1072 }
1073
1074 if (chan->flags & IEEE80211_CHAN_NO_IBSS) {
1075 chan->flags &= ~IEEE80211_CHAN_NO_IBSS;
1076 channel_changed = true; 1063 channel_changed = true;
1077 } 1064 }
1078 1065