* [PATCH 1/5] ath: fix logic on ath_reg_apply_active_scan_flags()
From: Luis R. Rodriguez @ 2013-10-21 17:14 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382375691-25476-1-git-send-email-mcgrof@do-not-panic.com>
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>
---
drivers/net/wireless/ath/regd.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index c00687e..1b4a532 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -255,16 +255,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_PASSIVE_SCAN)
- ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
+ ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
+
ch = &sband->channels[12]; /* CH 13 */
- if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
- ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
+ ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
return;
}
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 2/5] ath: clean up ath_reg_apply_active_scan_flags()
From: Luis R. Rodriguez @ 2013-10-21 17:14 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382375691-25476-1-git-send-email-mcgrof@do-not-panic.com>
The routine ath_reg_apply_active_scan_flags() can be a bit
hard to read, this cleans it up by adding helpers for the
two cases of clearing IR flags or adding them. This approach
also makes no assumptions on the index of channels 12 and 13
so it should be portable accross different drivers.
Cc: smihir@qti.qualcomm.com
Cc: tushnimb@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/ath/regd.c | 101 +++++++++++++++++++++++++---------------
1 file changed, 63 insertions(+), 38 deletions(-)
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 1b4a532..48e2368 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -177,6 +177,47 @@ static bool ath_is_radar_freq(u16 center_freq)
return (center_freq >= 5260 && center_freq <= 5700);
}
+static void ath_force_clear_no_ir_chan(struct wiphy *wiphy,
+ struct ieee80211_channel *ch)
+{
+ const struct ieee80211_reg_rule *reg_rule;
+
+ reg_rule = freq_reg_info(wiphy, ch->center_freq);
+ if (IS_ERR(reg_rule))
+ return;
+
+ if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
+ if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
+ ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
+}
+
+static void ath_force_clear_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
+{
+ struct ieee80211_channel *ch;
+
+ ch = ieee80211_get_channel(wiphy, center_freq);
+ if (!ch)
+ return;
+
+ ath_force_clear_no_ir_chan(wiphy, ch);
+}
+
+static void ath_force_no_ir_chan(struct ieee80211_channel *ch)
+{
+ ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
+}
+
+static void ath_force_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
+{
+ struct ieee80211_channel *ch;
+
+ ch = ieee80211_get_channel(wiphy, center_freq);
+ if (!ch)
+ return;
+
+ ath_force_no_ir_chan(ch);
+}
+
/*
* N.B: These exception rules do not apply radar freqs.
*
@@ -241,54 +282,38 @@ ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
}
-/* Allows active scan scan on Ch 12 and 13 */
+/**
+ * ath_reg_apply_active_scan_flags()
+ * @wiphy: the wiphy to use
+ * @initiator: the regulatory hint initiator
+ *
+ * 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 a country IE has been received check its rule for this
+ * channel first before enabling active scan. The passive scan
+ * would have been enforced by the initial processing of our
+ * custom regulatory domain.
+ */
static void
ath_reg_apply_active_scan_flags(struct wiphy *wiphy,
enum nl80211_reg_initiator initiator)
{
struct ieee80211_supported_band *sband;
- struct ieee80211_channel *ch;
- const struct ieee80211_reg_rule *reg_rule;
sband = wiphy->bands[IEEE80211_BAND_2GHZ];
if (!sband)
return;
- /*
- * 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 */
- ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
-
- ch = &sband->channels[12]; /* CH 13 */
- ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
- return;
- }
-
- /*
- * If a country IE has been received check its rule for this
- * channel first before enabling active scan. The passive scan
- * would have been enforced by the initial processing of our
- * custom regulatory domain.
- */
-
- ch = &sband->channels[11]; /* CH 12 */
- reg_rule = freq_reg_info(wiphy, ch->center_freq);
- if (!IS_ERR(reg_rule)) {
- if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
- if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
- ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
- }
-
- ch = &sband->channels[12]; /* CH 13 */
- reg_rule = freq_reg_info(wiphy, ch->center_freq);
- if (!IS_ERR(reg_rule)) {
- if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
- if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
- ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
+ switch(initiator) {
+ case NL80211_REGDOM_SET_BY_COUNTRY_IE:
+ ath_force_clear_no_ir_freq(wiphy, 2467);
+ ath_force_clear_no_ir_freq(wiphy, 2472);
+ break;
+ default:
+ ath_force_no_ir_freq(wiphy, 2467);
+ ath_force_no_ir_freq(wiphy, 2472);
}
}
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 3/5] ath: rename ath_reg_apply_active_scan_flags() to ath_reg_apply_ir_flags()
From: Luis R. Rodriguez @ 2013-10-21 17:14 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382375691-25476-1-git-send-email-mcgrof@do-not-panic.com>
This also applies the no-ibss flag to the channels or clears it.
The idea here is to clarify no initiated radiation should be
allowed on these channels.
Cc: smihir@qti.qualcomm.com
Cc: tushnimb@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/ath/regd.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 48e2368..2188fdd 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -189,6 +189,10 @@ static void ath_force_clear_no_ir_chan(struct wiphy *wiphy,
if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
+
+ if (!(reg_rule->flags & IEEE80211_CHAN_NO_IBSS))
+ if (ch->flags & IEEE80211_CHAN_NO_IBSS)
+ ch->flags &= ~IEEE80211_CHAN_NO_IBSS;
}
static void ath_force_clear_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
@@ -205,6 +209,7 @@ static void ath_force_clear_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
static void ath_force_no_ir_chan(struct ieee80211_channel *ch)
{
ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
+ ch->flags |= IEEE80211_CHAN_NO_IBSS;
}
static void ath_force_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
@@ -283,7 +288,7 @@ ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
}
/**
- * ath_reg_apply_active_scan_flags()
+ * ath_reg_apply_ir_flags()
* @wiphy: the wiphy to use
* @initiator: the regulatory hint initiator
*
@@ -297,7 +302,7 @@ ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
* custom regulatory domain.
*/
static void
-ath_reg_apply_active_scan_flags(struct wiphy *wiphy,
+ath_reg_apply_ir_flags(struct wiphy *wiphy,
enum nl80211_reg_initiator initiator)
{
struct ieee80211_supported_band *sband;
@@ -364,7 +369,7 @@ static void ath_reg_apply_world_flags(struct wiphy *wiphy,
break;
case 0x68:
ath_reg_apply_beaconing_flags(wiphy, initiator);
- ath_reg_apply_active_scan_flags(wiphy, initiator);
+ ath_reg_apply_ir_flags(wiphy, initiator);
break;
}
}
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 4/5] ath: simplify ath_reg_apply_beaconing_flags()
From: Luis R. Rodriguez @ 2013-10-21 17:14 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382375691-25476-1-git-send-email-mcgrof@do-not-panic.com>
Simplify ath_reg_apply_beaconing_flags() by making use of
thew new no-ir helper.
Cc: smihir@qti.qualcomm.com
Cc: tushnimb@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/ath/regd.c | 37 ++++++++++---------------------------
1 file changed, 10 insertions(+), 27 deletions(-)
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 2188fdd..941e65b 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -224,13 +224,11 @@ static void ath_force_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
}
/*
- * N.B: These exception rules do not apply radar freqs.
+ * These exception rules do not apply radar frequencies.
*
- * - We enable adhoc (or beaconing) if allowed by 11d
- * - We enable active scan if the channel is allowed by 11d
+ * - We enable initiating radiation if the country IE says its fine:
* - If no country IE has been processed and a we determine we have
- * received a beacon on a channel we can enable active scan and
- * adhoc (or beaconing).
+ * received a beacon on a channel we can enable initiating radiation.
*/
static void
ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
@@ -238,7 +236,6 @@ ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
{
enum ieee80211_band band;
struct ieee80211_supported_band *sband;
- const struct ieee80211_reg_rule *reg_rule;
struct ieee80211_channel *ch;
unsigned int i;
@@ -257,27 +254,13 @@ ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
(ch->flags & IEEE80211_CHAN_RADAR))
continue;
- if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE) {
- reg_rule = freq_reg_info(wiphy, ch->center_freq);
- if (IS_ERR(reg_rule))
- continue;
- /*
- * If 11d had a rule for this channel ensure
- * we enable adhoc/beaconing if it allows us to
- * use it. Note that we would have disabled it
- * by applying our static world regdomain by
- * default during init, prior to calling our
- * regulatory_hint().
- */
- if (!(reg_rule->flags &
- NL80211_RRF_NO_IBSS))
- ch->flags &=
- ~IEEE80211_CHAN_NO_IBSS;
- if (!(reg_rule->flags &
- NL80211_RRF_PASSIVE_SCAN))
- ch->flags &=
- ~IEEE80211_CHAN_PASSIVE_SCAN;
- } else {
+ /*
+ * If the country IE says initiating radiation
+ * is OK we trust that.
+ */
+ if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE)
+ ath_force_clear_no_ir_chan(wiphy, ch);
+ else {
if (ch->beacon_found)
ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
IEEE80211_CHAN_PASSIVE_SCAN);
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 5/5] ath: move the channel for ath_reg_apply_beaconing_flags() into helper
From: Luis R. Rodriguez @ 2013-10-21 17:14 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382375691-25476-1-git-send-email-mcgrof@do-not-panic.com>
While at it convert this into a switch statement, this
makes it easier and manage.
Cc: smihir@qti.qualcomm.com
Cc: tushnimb@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/ath/regd.c | 41 +++++++++++++++++++++--------------------
1 file changed, 21 insertions(+), 20 deletions(-)
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 941e65b..14d3614 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -223,6 +223,26 @@ static void ath_force_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
ath_force_no_ir_chan(ch);
}
+static void
+__ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
+ enum nl80211_reg_initiator initiator,
+ struct ieee80211_channel *ch)
+{
+ if (ath_is_radar_freq(ch->center_freq) ||
+ (ch->flags & IEEE80211_CHAN_RADAR))
+ return;
+
+ switch (initiator) {
+ case NL80211_REGDOM_SET_BY_COUNTRY_IE:
+ ath_force_clear_no_ir_chan(wiphy, ch);
+ break;
+ default:
+ if (ch->beacon_found)
+ ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
+ IEEE80211_CHAN_PASSIVE_SCAN);
+ }
+}
+
/*
* These exception rules do not apply radar frequencies.
*
@@ -240,34 +260,15 @@ ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
unsigned int i;
for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
-
if (!wiphy->bands[band])
continue;
-
sband = wiphy->bands[band];
-
for (i = 0; i < sband->n_channels; i++) {
-
ch = &sband->channels[i];
+ __ath_reg_apply_beaconing_flags(wiphy, initiator, ch);
- if (ath_is_radar_freq(ch->center_freq) ||
- (ch->flags & IEEE80211_CHAN_RADAR))
- continue;
-
- /*
- * If the country IE says initiating radiation
- * is OK we trust that.
- */
- if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE)
- ath_force_clear_no_ir_chan(wiphy, ch);
- else {
- if (ch->beacon_found)
- ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN);
- }
}
}
-
}
/**
--
1.8.4.rc3
^ permalink raw reply related
* Updates to 3.8 kernel break b43 Wireless with 4331 chipset
From: andrewl733 @ 2013-10-21 17:14 UTC (permalink / raw)
To: linux-wireless
I just reported this but to Mageia but it seems like it is more likely
to be a Linux wireless bug.
I have a Macbook Pro 8,2 with Broadcom 4331 wireless chipset. The
update from the original Mageia 3 kernel (their 3.8.13-1) to a newer
Mageia 3 kernel with security and bug fixes (their 3.8.13.4-1) broke my
b43 wireless. After the update, I had the following symptoms:
-- Frequent disconnections from any wireless network. Disconnections
typically occur every 3-5 minutes. To get the connection back, I have
to disable and re-enable wireless in Gnome Network Settings (or Network
Manager), or unload and reload b43 module in KDE.
-- Failure to see many access points. The only way to connect is to
configure as a "hidden" network
Unfortunately, when running the Mageia 3.8.13.4-1 kernel, there is no
information in dmesg or in the syslog to show what is going on.
iwconfig shows that I am still connected to the network. ifconfig
shows the connection is still "up". The Network Manager icon shows that
I am still connected. However, no traffic is passing in or out.
I knew this didn't happen when I first installed Mageia 3 several
months ago and in fact, going back to the Mageia 3 Live DVD got rid of
the problem. To troubleshoot, I decided to try the Mint 15 Live DVD (of
course, I had to copy the b43 firmware into Mint). Much to my
surprise, I had the same problem with Mint. But in Mint, unlike in
Mageia, dmesg perhaps offers some clues as to what is going on. Every
few minutes, I find a message which says, in effect, that the "b43
firmware crashed".
>From Mint dmesg:
[ 909.754038] b43-phy0 ERROR: Firmware watchdog: The firmware died!
[ 909.754050] b43-phy0: Controller RESET (Firmware watchdog) ...
[ 909.949810] ------------[ cut here ]------------
[ 909.949839] WARNING: at
/build/buildd/linux-3.8.0/drivers/net/wireless/b43/main.c:2574
b43_chip_init+0x9b6/0x9d0 [b43]()
[ 909.949844] Hardware name: MacBookPro8,2
[ 909.949847] Modules linked in: arc4(F) b43 bcma mac80211 cfg80211
ssb dm_crypt(F) parport_pc(F) ppdev(F) lp(F) parport(F) uvcvideo
snd_hda_codec_hdmi videobuf2_vmalloc videobuf2_memops videobuf2_core
videodev coretemp btusb snd_hda_codec_cirrus kvm_intel snd_hda_intel
bcm5974 kvm snd_hda_codec snd_hwdep(F) snd_pcm(F) joydev(F) apple_gmux
dm_multipath(F) bnep applesmc ghash_clmulni_intel(F) aesni_intel(F)
scsi_dh(F) snd_page_alloc(F) snd_seq_midi(F) snd_seq_midi_event(F)
apple_bl snd_rawmidi(F) aes_x86_64(F) xts(F) lrw(F) gf128mul(F)
ablk_helper(F) cryptd(F) snd_seq(F) rfcomm mac_hid mei
snd_seq_device(F) snd_timer(F) bluetooth input_polldev snd(F)
soundcore(F) lpc_ich microcode(F) binfmt_misc(F) squashfs(F)
overlayfs(F) nls_utf8 isofs(F) nls_iso8859_1(F) dm_raid45 xor(F)
dm_mirror(F) dm_region_hash(F) dm_log(F) hid_generic hid_apple usbhid
hid radeon firewire_ohci firewire_core crc_itu_t(F) i2c_algo_bit ttm
tg3 drm_kms_helper sdhci_pci drm ptp sdhci pps_core video(F) [last
unloaded: bcma]
[ 909.949988] Pid: 3917, comm: kworker/u:1 Tainted: GF W
3.8.0-19-generic #29-Ubuntu
[ 909.949992] Call Trace:
[ 909.950006] [<ffffffUpdates to 3.8 kernel break b43 Wireless with
4331 chipsetff810587ef>] warn_slowpath_common+0x7f/0xc0
[ 909.950014] [<ffffffff8105884a>] warn_slowpath_null+0x1a/0x20
[ 909.950028] [<ffffffffa0585fc6>] b43_chip_init+0x9b6/0x9d0 [b43]
[ 909.950041] [<ffffffffa0586142>] b43_wireless_core_init+0x162/0x840
[b43]
[ 909.950054] [<ffffffffa0586fb7>] b43_chip_reset+0x67/0x120 [b43]
[ 909.950064] [<ffffffff8107671c>] process_one_work+0x15c/0x4d0
[ 909.950072] [<I just reported this but to Mageia but it seems like
it is more likely to be a Linux wireless bug.
I have a Macbook Pro 8,2 with Broadcom 4331 wireless chipset. The
update from the original Mageia 3 kernel (their 3.8.13-1) to a newer
Mageia 3 kernel with security and bug fixes (their 3.8.13.4-1) broke my
b43 wireless. After the update, I had the following symptoms:
-- Frequent disconnections from any wireless network. Disconnections
typically occur every 3-5 minutes. To get the connection back, I have
to disable and re-enable wireless in Gnome Network Settings (or Network
Manager), or unload and reload b43 module in KDE.
-- Failure to see many access points. The only way to connect is to
configure as a "hidden" network
Unfortunately, when running the Mageia 3.8.13.4-1 kernel, there is no
information in dmesg or in the syslog to show what is going on.
iwconfig shows that I am still connected to the network. ifconfig
shows the coUpdates to 3.8 kernel break b43 Wireless with 4331
chipsetnnection is still "up". The Network Manager icon shows that I am
still connected. However, no traffic is passing in or out.
I knew this didn't happen when I first installed Mageia 3 several
months ago and in fact, going back to the Mageia 3 Live DVD got rid of
the problem. To troubleshoot, I decided to try the Mint 15 Live DVD (of
course, I had to copy the b43 firmware into Mint). Much to my
surprise, I had the same problem with Mint. But in Mint, unlike in
Mageia, dmesg perhaps offers some clues as to what is going on. Every
few minutes, I find a message which says, in effect, that the "b43
firmware crashed".
>From Mint dmesg:
[ 909.754038] b43-phy0 ERROR: Firmware watchdog: The firmware died!
[ 909.754050] b43-phy0: Controller RESET (Firmware watchdog) ...
[ 909.949810] ------------[ cut here ]------------
[ 909.949839] WARNING: at
/build/buildd/linux-3.8.0/drivers/net/wireless/b43/main.c:2574
b43_chip_init+0x9b6/0x9d0 [b43]()
[ 909.949844] Hardware name: MacBookPro8,2
[ 909.949847] Modules linked in: arc4(F) b43 bcma mac80211 cfg80211
ssb dm_crypt(F) parport_pc(F) ppdev(F) lp(F) parport(F) uvcvideo
snd_hda_codec_hdmi videobuf2_vmalloc videobuf2_memops videobuf2_core
videodev coretemp btusb snd_hda_codec_cirrus kvm_intel snd_hda_intel
bcm5974 kvm snd_hda_codec snd_hwdep(F) snd_pcm(F) joydev(F) apple_gmux
dm_multipath(F) bnep applesmc ghash_clmulni_intel(F) aesni_intel(F)
scsi_dh(F) snd_page_alloc(F) snd_seq_midi(F) snd_seq_midi_event(F)
apple_bl snd_rawmidi(F) aes_x86_64(F) xts(F) lrw(F) gf128mul(F)
ablk_helper(F) cryptd(F) snd_seq(F) rfcomm mac_hid mei
snd_seq_device(F) snd_timer(F) bluetooth input_polldev snd(F)
soundcore(F) lpc_ich microcode(F) binfmt_misc(F) squashfs(F)
overlayfs(F) nls_utf8 isofs(F) nls_iso8859_1(F) dm_raid45 xor(F)
dm_mirror(F) dm_region_hash(F) dm_log(F) hid_generic hid_apple usbhid
hid radeon firewire_ohci firewire_core crc_itu_t(F) i2c_algo_bit ttm
tg3 drm_kms_helper sdhci_pci drm ptp sdhci pps_core video(F) [last
unloaded: bcma]
[ 909.949988] Pid: 3917, comm: kworker/u:1 Tainted: GF W
3.8.0-19-generic #29-Ubuntu
[ 909.949992] Call Trace:
[ 909.950006] [<ffffffff810587ef>] warn_slowpath_common+0x7f/0xc0
[ 909.950014] [<ffffffff8105884a>] warn_slowpath_null+0x1a/0x20
[ 909.950028] [<ffffffffa0585fc6>] b43_chip_init+0x9b6/0x9d0 [b43]
[ 909.950041] [<ffffffffa0586142>] b43_wireless_core_init+0x162/0x840
[b43]
[ 909.950054] [<ffffffffa0586fb7>] b43_chip_reset+0x67/0x120 [b43]
[ 909.950064] [<ffffffff8107671c>] process_one_work+0x15c/0x4d0
[ 909.950072] [<ffffffff81077f7e>] worker_thread+0x16e/0x480
[ 909.950080] [<ffffffff81077e10>] ? manage_workers+0x2a0/0x2a0
[ 909.950087] [<ffffffff8107d2b0>] kthread+0xc0/0xd0
[ 909.950094] [<ffffffff8107d1f0>] ?
kthread_create_on_node+0x120/0x120
[ 909.950105] [<ffffffff816d36ec>] ret_from_fork+0x7c/0xb0
[ 909.950111] [<ffffffff8107d1f0>] ?
kthread_create_on_node+0x120/0x120
[ 909.950117] ---[ endUpdates to 3.8 kernel break b43 Wireless with
4331 chipset trace a14aa72aa3cdd697 ]---
[ 909.950123] b43-phy0: Loading OpenSource firmware version 666.2535
[ 909.950148] b43-phy0: Hardware crypto acceleration not supported by
firmware
[ 910.009859] b43-phy0: Controller restarted
[ 970.655552] b43-phy0 ERROR: Firmware watchdog: The firmware died!
[ 970.655564] b43-phy0: Controller RESET (Firmware watchdog) ...
[ 970.851367] ------------[ cut here ]------------
[ 970.851395] WARNING: at
/build/buildd/linux-3.8.0/drivers/net/wireless/b43/main.c:2574
b43_chip_init+0x9b6/0x9d0 [b43]()
[ 970.851399] Hardware name: MacBookPro8,2
[ 970.851403] Modules linked in: arc4(F) b43 bcma mac80211 cfg80211
ssb dm_crypt(F) parport_pc(F) ppdev(F) lp(F) parport(F) uvcvideo
snd_hda_codec_hdmi videobuf2_vmalloc videobuf2_memops videobuf2_core
videodev coretemp btusb snd_hda_codec_cirrus kvm_intel snd_hda_intel
bcm5974 kvm snd_hda_codec snd_hwdep(F) snd_pcm(F) joydev(F) apple_gmux
dm_multipath(F) bnep applesmc ghash_clmulni_intel(F) aesni_intel(F)
scsi_dh(F) snd_page_alloc(F) snd_seq_midi(F) snd_seq_midi_event(F)
apple_bl snd_rawmidi(F) aes_x86_64(F) xts(F) lrw(F) gf128mul(F)
ablk_helper(F) cryptd(F) snd_seq(F) rfcomm mac_hid mei
snd_seq_device(F) snd_timer(F) bluetooth input_polldev snd(F)
soundcore(F) lpc_ich microcode(F) binfmt_misc(F) squashfs(F)
overlayfs(F) nls_utf8 isofs(F) nls_iso8859_1(F) dm_raid45 xor(F)
dm_mirror(F) dm_region_hash(F) dm_log(F) hid_generic hid_apple usbhid
hid radeon firewire_ohci firewire_core crc_itu_t(F) i2c_algo_bit ttm
tg3 drm_kms_helper sdhci_pci drm ptp sdhci pps_core video(F) [last
unloaded: bcma]
[ 970.851543] Pid: 3917, comm: kworker/u:1 Tainted: GF W
3.8.0-19-generic #29-Ubuntu
[ 970.851547] Call Trace:
[ 970.851561] [<ffffffff810587ef>] warn_slowpath_common+0x7f/0xc0
[ 970.851568] [<ffffffff8105884a>] warn_slowpath_null+0x1a/0x20
[ 970.851582] [<ffffffffa0585fc6>] b43_chip_init+0x9b6/0x9d0 [b43]
[ 970.851595] [<ffffffffa0586142>] b43_wireless_core_init+0x162/0x840
[b43]
[ 970.851608] [<ffffffffa0586fb7>] b43_chip_reset+0x67/0x120 [b43]
[ 970.851617] [<ffffffff8107671c>] process_one_work+0x15c/0x4d0
[ 970.851625] [<ffffffff81077f7e>] worker_thread+0x16e/0x480
[ 970.851633] [<ffffffff81077e10>] ? manage_workers+0x2a0/0x2a0
[ 970.851639] [<ffffffff8107d2b0>] kthread+0xc0/0xd0
[ 970.851646] [<ffffffff8107d1f0>] ?
kthread_create_on_node+0x120/0x120
[ 970.851657] [<ffffffff816d36ec>] ret_from_fork+0x7c/0xb0
[ 970.851663] [<ffffffff8107d1f0>] ?
kthread_create_on_node+0x120/0x120
[ 970.851668] ---[ end trace a14aa72aa3cdd698 ]---
[ 970.851675] b43-phy0: Loading OpenSource firmware version 666.2535
[ 970.851700] b43-phy0: Hardware crypto acceleration not supported by
firmware
[ 970.911468] b43-phy0: Controller restarted
Sometimes the wireless connection survives these glitches. For
instance, if I am listen to streaming Internet radio, I might not
experience the sound cutting out (if it has buffered enough). If I am
trying to read my email during a disconnection, I get an error in my
browser saying "Unable to resolve host". Eventually, the connection
goes away and never comes back.
If you Google "b43 4331 3.8 kernel" or "b43 4331 disconnection" you
will find lots of posts from people having trouble with the 4331
broadcom chipset and the 3.8 (and maybe 3.9) kernel.
Bug 913341 – Kernel 3.8 breaks b43 wireless
https://bugzilla.redhat.com/show_bug.cgi?id=913341
14e4:4331 Broadcom BCM4331 unusable with Raring kernel 3.8.0-19
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1174347
Bug #1142385 “B43 Wireless Autoconnect Failure” : Bugs : “linux ...
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1142385
strange b43 problem // 3.9 regression? (Linux Wireless) - spinics.net
http://www.spinics.net/lists/linux-wireless/msg108825.html
For whatever reason, the 3.8 kernel originally included with Mageia 3
does NOT have this problem (one disconnection seems to occur maybe once
every few days) whereas with the updated kernel it occurs every few
minutes.
Two days ago I managed to revert my Mac to the original Mageia 3
kernel. The wireless has stayed up for 48 hours so far without a
glitch.
ffffffff81077f7e>] worker_thread+0x16e/0x480
[ 909.950080] [<ffffffff81077e10>] ? manage_workers+0x2a0/0x2a0
[ 909.950087] [<ffffffff8107d2b0>] kthread+0xc0/0xd0
[ 909.950094] [<ffffffff8107d1f0>] ?
kthread_create_on_node+0x120/0x120
[ 909.950105] [<ffffffff816d36ec>] ret_from_fork+0x7c/0xb0
[ 909.950111] [<ffffffff8107d1f0>] ?
kthread_create_on_node+0x120/0x120
[ 909.950117] ---[ end trace a14aa72aa3cdd697 ]---
[ 909.950123] b43-phy0: Loading OpenSource firmware version 666.2535
[ 909.950148] b43-phy0: Hardware crypto acceleration not supported by
firmware
[ 910.009859] b43-phy0: Controller restarted
[ 970.655552] b43-phy0 ERROR: Firmware watchdog: The firmware died!
[ 970.655564] b43-phy0: Controller RESET (Firmware watchdog) ...
[ 970.851367] ------------[ cut here ]------------
[ 970.851395] WARNING: at
/build/buildd/linux-3.8.0/drivers/net/wireless/b43/main.c:2574
b43_chip_init+0x9b6/0x9d0 [b43]()
[ 970.851399] Hardware name: MacBookPro8,2
[ 970.851403] Modules linked in: arc4(F) b43 bcma mac80211 cfg80211
ssb dm_crypt(F) parport_pc(F) ppdev(F) lp(F) parport(F) uvcvideo
snd_hda_codec_hdmi videobuf2_vmalloc videobuf2_memops videobuf2_core
videodev coretemp btusb snd_hda_codec_cirrus kvm_intel snd_hda_intel
bcm5974 kvm snd_hda_codec snd_hwdep(F) snd_pcm(F) joydev(F) apple_gmux
dm_multipath(F) bnep applesmc ghash_clmulni_intel(F) aesni_intel(F)
scsi_dh(F) snd_page_alloc(F) snd_seq_midi(F) snd_seq_midi_event(F)
apple_bl snd_rawmidi(F) aes_x86_64(F) xts(F) lrw(F) gf128mul(F)
ablk_helper(F) cryptd(F) snd_seq(F) rfcomm mac_hid mei
snd_seq_device(F) snd_timer(F) bluetooth input_polldev snd(F)
soundcore(F) lpc_ich microcode(F) binfmt_misc(F) squashfs(F)
overlayfs(F) nls_utf8 isofs(F) nls_iso8859_1(F) dm_raid45 xor(F)
dm_mirror(F) dm_region_hash(F) dm_log(F) hid_generic hid_apple usbhid
hid radeon firewire_ohci firewire_core crc_itu_t(F) i2c_algo_bit ttm
tg3 drm_kms_helper sdhci_pci drm ptp sdhci pps_core video(F) [last
unloaded: bcma]
[ 970.851543] Pid: 3917, comm: kworker/u:1 Tainted: GF W
3.8.0-19-generic #29-Ubuntu
[ 970.851547] Call Trace:
[ 970.851561] [<ffffffff810587ef>] warn_slowpath_common+0x7f/0xc0
[ 970.851568] [<ffffffff8105884a>] warn_slowpath_null+0x1a/0x20
[ 970.851582] [<ffffffffa0585fc6>] b43_chip_init+0x9b6/0x9d0 [b43]
[ 970.851595] [<ffffffffa0586142>] b43_wireless_core_init+0x162/0x840
[b43]
[ 970.851608] [<ffffffffa0586fb7>] b43_chip_reset+0x67/0x120 [b43]
[ 970.851617] [<ffffffff8107671c>] process_one_work+0x15c/0x4d0
[ 970.851625] [<ffffffff81077f7e>] worker_thread+0x16e/0x480
[ 970.851633] [<ffffffff81077e10>] ? manage_workers+0x2a0/0x2a0
[ 970.851639] [<ffffffff8107d2b0>] kthread+0xc0/0xd0
[ 970.851646] [<ffffffff8107d1f0>] ?
kthread_create_on_node+0x120/0x120
[ 970.851657] [<ffffffff816d36ec>] ret_from_fork+0x7c/0xb0
[ 970.851663] [<ffffffff8107d1f0>] ?
kthread_create_on_node+0x120/0x120
[ 970.851668] ---[ end trace a14aa72aa3cdd698 ]---
[ 970.851675] b43-phy0: Loading OpenSource firmware version 666.2535
[ 970.851700] b43-phy0: Hardware crypto acceleration not supported by
firmware
[ 970.911468] b43-phy0: Controller restarted
Sometimes the wireless connection survives these glitches. For
instance, if I am listen to streaming Internet radio, I might not
experience the sound cutting out (if it has buffered enough). If I am
trying to read my email during a disconnection, I get an error in my
browser saying "Unable to resolve host". Eventually, the connection
goes away and never comes back.
If you Google "b43 4331 3.8 kernel" or "b43 4331 disconnection" you
will find lots of posts from people having trouble with the 4331
broadcom chipset and the 3.8 (and maybe 3.9) kernel.
Bug 913341 – Kernel 3.8 breaks b43 wireless
https://bugzilla.redhat.com/show_bug.cgi?id=913341
14e4:4331 Broadcom BCM4331 unusable with Raring kernel 3.8.0-19
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1174347
Bug #1142385 “B43 Wireless Autoconnect Failure” : Bugs : “linux ...
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1142385
strange b43 problem // 3.9 regression? (Linux Wireless) - spinics.net
http://www.spinics.net/lists/linux-wireless/msg108825.html
For whatever reason, the 3.8 kernel originally included with Mageia 3
does NOT have this problem (one disconnection seems to occur maybe once
every few days) whereas with the updated kernel it occurs every few
minutes.
Two days ago I managed to revert my Mac to the original Mageia 3
kernel. The wireless has stayed up for 48 hours so far without a
glitch.
-- Andrew
^ permalink raw reply
* [PATCH 00/14] wlan: consolidate passive-scan and no-ibss flags
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
John, Johannes,
This series addresses consolidating passive-scan and no-ibss flags.
Since its crosses over drivers I'll let you guys decide what tree
this goes into.
Luis R. Rodriguez (14):
cfg80211: consolidate passive-scan and no-ibss flags
ath: consolidate no-ibss and passive scan to no-ir
ath10k: consolidate no-ibss and passive scan to no-ir
brcm80211: consolidate no-ibss and passive scan to no-ir
ipw2x00: consolidate no-ibss and passive scan to no-ir
mac80211_hwsim: consolidate no-ibss and passive scan to no-ir
mwifiex: consolidate no-ibss and passive scan to no-ir
iwlegacy: consolidate no-ibss and passive scan to no-ir
rtlwifi: consolidate no-ibss and passive scan to no-ir
mac80211: consolidate no-ibss and passive scan to no-ir
ti: consolidate no-ibss and passive scan to no-ir
cw1200: consolidate no-ibss and passive scan to no-ir
iwlwifi: consolidate no-ibss and passive scan to no-ir
cfg80211: remove internal passive-scan and no-ibss guards
Documentation/networking/regulatory.txt | 4 +-
drivers/net/wireless/ath/ath10k/mac.c | 4 +-
drivers/net/wireless/ath/regd.c | 34 ++++-------
drivers/net/wireless/brcm80211/brcmfmac/p2p.c | 2 +-
.../net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 6 +-
drivers/net/wireless/brcm80211/brcmsmac/channel.c | 33 ++++-------
.../net/wireless/brcm80211/brcmsmac/mac80211_if.c | 66 +++++++++++-----------
drivers/net/wireless/cw1200/scan.c | 10 ++--
drivers/net/wireless/ipw2x00/ipw2100.c | 8 +--
drivers/net/wireless/ipw2x00/ipw2200.c | 16 ++----
drivers/net/wireless/iwlegacy/3945-mac.c | 2 +-
drivers/net/wireless/iwlegacy/4965-mac.c | 2 +-
drivers/net/wireless/iwlegacy/common.c | 4 +-
drivers/net/wireless/iwlegacy/debug.c | 8 +--
drivers/net/wireless/iwlwifi/dvm/debugfs.c | 8 +--
drivers/net/wireless/iwlwifi/dvm/scan.c | 2 +-
drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c | 4 +-
drivers/net/wireless/iwlwifi/iwl-nvm-parse.c | 4 +-
drivers/net/wireless/iwlwifi/mvm/scan.c | 4 +-
drivers/net/wireless/mac80211_hwsim.c | 4 +-
drivers/net/wireless/mwifiex/cfg80211.c | 14 ++---
drivers/net/wireless/mwifiex/scan.c | 4 +-
drivers/net/wireless/rtlwifi/regd.c | 48 +++++++---------
drivers/net/wireless/ti/wl12xx/scan.c | 2 +-
drivers/net/wireless/ti/wlcore/cmd.c | 2 +-
drivers/net/wireless/ti/wlcore/main.c | 3 +-
drivers/net/wireless/ti/wlcore/scan.c | 8 +--
include/net/cfg80211.h | 9 ++-
include/uapi/linux/nl80211.h | 30 ++++++----
net/mac80211/scan.c | 10 ++--
net/mac80211/tx.c | 3 +-
net/wireless/chan.c | 3 +-
net/wireless/genregdb.awk | 7 ++-
net/wireless/ibss.c | 4 +-
net/wireless/mesh.c | 3 +-
net/wireless/nl80211.c | 12 ++--
net/wireless/reg.c | 33 ++++-------
37 files changed, 189 insertions(+), 231 deletions(-)
--
1.8.4.rc3
^ permalink raw reply
* [PATCH 02/14] ath: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Cc: smihir@qti.qualcomm.com
Cc: tushnimb@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/ath/regd.c | 34 +++++++++++-----------------------
1 file changed, 11 insertions(+), 23 deletions(-)
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 14d3614..a258283 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -37,17 +37,17 @@ static int __ath_regd_init(struct ath_regulatory *reg);
/* We enable active scan on these a case by case basis by regulatory domain */
#define ATH9K_2GHZ_CH12_13 REG_RULE(2467-10, 2472+10, 40, 0, 20,\
- NL80211_RRF_PASSIVE_SCAN)
+ NL80211_RRF_NO_IR)
#define ATH9K_2GHZ_CH14 REG_RULE(2484-10, 2484+10, 40, 0, 20,\
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_OFDM)
+ NL80211_RRF_NO_IR | NL80211_RRF_NO_OFDM)
/* We allow IBSS on these on a case by case basis by regulatory domain */
#define ATH9K_5GHZ_5150_5350 REG_RULE(5150-10, 5350+10, 80, 0, 30,\
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
#define ATH9K_5GHZ_5470_5850 REG_RULE(5470-10, 5850+10, 80, 0, 30,\
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
#define ATH9K_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30,\
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
#define ATH9K_2GHZ_ALL ATH9K_2GHZ_CH01_11, \
ATH9K_2GHZ_CH12_13, \
@@ -186,13 +186,9 @@ static void ath_force_clear_no_ir_chan(struct wiphy *wiphy,
if (IS_ERR(reg_rule))
return;
- if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
- if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
- ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
-
- if (!(reg_rule->flags & IEEE80211_CHAN_NO_IBSS))
- if (ch->flags & IEEE80211_CHAN_NO_IBSS)
- ch->flags &= ~IEEE80211_CHAN_NO_IBSS;
+ if (!(reg_rule->flags & NL80211_RRF_NO_IR))
+ if (ch->flags & IEEE80211_CHAN_NO_IR)
+ ch->flags &= ~IEEE80211_CHAN_NO_IR;
}
static void ath_force_clear_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
@@ -206,12 +202,6 @@ static void ath_force_clear_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
ath_force_clear_no_ir_chan(wiphy, ch);
}
-static void ath_force_no_ir_chan(struct ieee80211_channel *ch)
-{
- ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
- ch->flags |= IEEE80211_CHAN_NO_IBSS;
-}
-
static void ath_force_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
{
struct ieee80211_channel *ch;
@@ -220,7 +210,7 @@ static void ath_force_no_ir_freq(struct wiphy *wiphy, u16 center_freq)
if (!ch)
return;
- ath_force_no_ir_chan(ch);
+ ch->flags |= IEEE80211_CHAN_NO_IR;
}
static void
@@ -238,8 +228,7 @@ __ath_reg_apply_beaconing_flags(struct wiphy *wiphy,
break;
default:
if (ch->beacon_found)
- ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN);
+ ch->flags &= ~IEEE80211_CHAN_NO_IR;
}
}
@@ -334,8 +323,7 @@ static void ath_reg_apply_radar_flags(struct wiphy *wiphy)
*/
if (!(ch->flags & IEEE80211_CHAN_DISABLED))
ch->flags |= IEEE80211_CHAN_RADAR |
- IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN;
+ IEEE80211_CHAN_NO_IR;
}
}
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 01/14] cfg80211: consolidate passive-scan and no-ibss flags
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
These two flags are used for the same purpose, just
combine them into a no-ir flag to annotate no initiating
radiation is allowed.
The way we deal with the consolidation is we rename
the passive scan flag to no-ir, and redefine no-ibss
to the no-ir flag. Old userspace sending us the no-ibss
flag will now be treated in-kernel as a no-ir flag. If
a channel has the no-ir flag we will send userspace both
the no-ir flag and the no-ibss flag to help with older
userspace. New userspace can just upgrade to treat only
the no-ir flag as when one will be populated the other
will be too.
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
Documentation/networking/regulatory.txt | 4 ++--
include/net/cfg80211.h | 12 +++++++-----
include/uapi/linux/nl80211.h | 30 ++++++++++++++++++++----------
net/wireless/chan.c | 3 +--
net/wireless/genregdb.awk | 7 +++++--
net/wireless/ibss.c | 4 ++--
net/wireless/mesh.c | 3 +--
net/wireless/nl80211.c | 12 ++++++------
net/wireless/reg.c | 33 ++++++++++-----------------------
9 files changed, 54 insertions(+), 54 deletions(-)
diff --git a/Documentation/networking/regulatory.txt b/Documentation/networking/regulatory.txt
index 9551622..356f791 100644
--- a/Documentation/networking/regulatory.txt
+++ b/Documentation/networking/regulatory.txt
@@ -159,10 +159,10 @@ struct ieee80211_regdomain mydriver_jp_regdom = {
REG_RULE(2412-20, 2484+20, 40, 6, 20, 0),
/* IEEE 802.11a, channels 34..48 */
REG_RULE(5170-20, 5240+20, 40, 6, 20,
- NL80211_RRF_PASSIVE_SCAN),
+ NL80211_RRF_NO_IR),
/* IEEE 802.11a, channels 52..64 */
REG_RULE(5260-20, 5320+20, 40, 6, 20,
- NL80211_RRF_NO_IBSS |
+ NL80211_RRF_NO_IR|
NL80211_RRF_DFS),
}
};
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 419202c..45eb9aa 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -91,9 +91,8 @@ enum ieee80211_band {
* Channel flags set by the regulatory control code.
*
* @IEEE80211_CHAN_DISABLED: This channel is disabled.
- * @IEEE80211_CHAN_PASSIVE_SCAN: Only passive scanning is permitted
- * on this channel.
- * @IEEE80211_CHAN_NO_IBSS: IBSS is not allowed on this channel.
+ * @IEEE80211_CHAN_NO_IR: do not initiate radiation, this includes
+ * sending probe requests or beaconing.
* @IEEE80211_CHAN_RADAR: Radar detection is required on this channel.
* @IEEE80211_CHAN_NO_HT40PLUS: extension channel above this channel
* is not permitted.
@@ -113,8 +112,8 @@ enum ieee80211_band {
*/
enum ieee80211_channel_flags {
IEEE80211_CHAN_DISABLED = 1<<0,
- IEEE80211_CHAN_PASSIVE_SCAN = 1<<1,
- IEEE80211_CHAN_NO_IBSS = 1<<2,
+ IEEE80211_CHAN_NO_IR = 1<<1,
+ /* hole at 1<<2 */
IEEE80211_CHAN_RADAR = 1<<3,
IEEE80211_CHAN_NO_HT40PLUS = 1<<4,
IEEE80211_CHAN_NO_HT40MINUS = 1<<5,
@@ -123,6 +122,9 @@ enum ieee80211_channel_flags {
IEEE80211_CHAN_NO_160MHZ = 1<<8,
};
+#define IEEE80211_CHAN_PASSIVE_SCAN IEEE80211_CHAN_NO_IR
+#define IEEE80211_CHAN_NO_IBSS IEEE80211_CHAN_NO_IR
+
#define IEEE80211_CHAN_NO_HT40 \
(IEEE80211_CHAN_NO_HT40PLUS | IEEE80211_CHAN_NO_HT40MINUS)
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 6ab79ea..64d0096 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -2206,10 +2206,9 @@ enum nl80211_band_attr {
* @NL80211_FREQUENCY_ATTR_FREQ: Frequency in MHz
* @NL80211_FREQUENCY_ATTR_DISABLED: Channel is disabled in current
* regulatory domain.
- * @NL80211_FREQUENCY_ATTR_PASSIVE_SCAN: Only passive scanning is
- * permitted on this channel in current regulatory domain.
- * @NL80211_FREQUENCY_ATTR_NO_IBSS: IBSS networks are not permitted
- * on this channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_NO_IR: no mechanisms that initiate radiation
+ * are permitted on this channel, this includes sending probe
+ * requests, or modes of operation that require beaconing.
* @NL80211_FREQUENCY_ATTR_RADAR: Radar detection is mandatory
* on this channel in current regulatory domain.
* @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
@@ -2236,8 +2235,8 @@ enum nl80211_frequency_attr {
__NL80211_FREQUENCY_ATTR_INVALID,
NL80211_FREQUENCY_ATTR_FREQ,
NL80211_FREQUENCY_ATTR_DISABLED,
- NL80211_FREQUENCY_ATTR_PASSIVE_SCAN,
- NL80211_FREQUENCY_ATTR_NO_IBSS,
+ NL80211_FREQUENCY_ATTR_NO_IR,
+ __NL80211_FREQUENCY_ATTR_NO_IBSS,
NL80211_FREQUENCY_ATTR_RADAR,
NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
NL80211_FREQUENCY_ATTR_DFS_STATE,
@@ -2253,6 +2252,9 @@ enum nl80211_frequency_attr {
};
#define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
+#define NL80211_FREQUENCY_ATTR_PASSIVE_SCAN NL80211_FREQUENCY_ATTR_NO_IR
+#define NL80211_FREQUENCY_ATTR_NO_IBSS NL80211_FREQUENCY_ATTR_NO_IR
+#define NL80211_FREQUENCY_ATTR_NO_IR NL80211_FREQUENCY_ATTR_NO_IR
/**
* enum nl80211_bitrate_attr - bitrate attributes
@@ -2395,8 +2397,9 @@ enum nl80211_sched_scan_match_attr {
* @NL80211_RRF_DFS: DFS support is required to be used
* @NL80211_RRF_PTP_ONLY: this is only for Point To Point links
* @NL80211_RRF_PTMP_ONLY: this is only for Point To Multi Point links
- * @NL80211_RRF_PASSIVE_SCAN: passive scan is required
- * @NL80211_RRF_NO_IBSS: no IBSS is allowed
+ * @NL80211_RRF_NO_IR: no mechanisms that initiate radiation are allowed,
+ * this includes probe requests or modes of operation that require
+ * beaconing.
*/
enum nl80211_reg_rule_flags {
NL80211_RRF_NO_OFDM = 1<<0,
@@ -2406,10 +2409,17 @@ enum nl80211_reg_rule_flags {
NL80211_RRF_DFS = 1<<4,
NL80211_RRF_PTP_ONLY = 1<<5,
NL80211_RRF_PTMP_ONLY = 1<<6,
- NL80211_RRF_PASSIVE_SCAN = 1<<7,
- NL80211_RRF_NO_IBSS = 1<<8,
+ NL80211_RRF_NO_IR = 1<<7,
+ __NL80211_RRF_NO_IBSS = 1<<8,
};
+#define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
+#define NL80211_RRF_NO_IBSS NL80211_RRF_NO_IR
+#define NL80211_RRF_NO_IR NL80211_RRF_NO_IR
+
+/* For backport compatibility with older userspace */
+#define NL80211_RRF_NO_IR_ALL (NL80211_RRF_NO_IR | __NL80211_RRF_NO_IBSS)
+
/**
* enum nl80211_dfs_regions - regulatory DFS regions
*
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index 16f3c3a..82aa71fd 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -467,8 +467,7 @@ bool cfg80211_reg_can_beacon(struct wiphy *wiphy,
res = cfg80211_chandef_usable(wiphy, chandef,
IEEE80211_CHAN_DISABLED |
- IEEE80211_CHAN_PASSIVE_SCAN |
- IEEE80211_CHAN_NO_IBSS |
+ IEEE80211_CHAN_NO_IR |
IEEE80211_CHAN_RADAR);
trace_cfg80211_return_bool(res);
diff --git a/net/wireless/genregdb.awk b/net/wireless/genregdb.awk
index 42ed274..c808619 100644
--- a/net/wireless/genregdb.awk
+++ b/net/wireless/genregdb.awk
@@ -107,10 +107,13 @@ active && /^[ \t]*\(/ {
} else if (flagarray[arg] == "PTMP-ONLY") {
flags = flags "\n\t\t\tNL80211_RRF_PTMP_ONLY | "
} else if (flagarray[arg] == "PASSIVE-SCAN") {
- flags = flags "\n\t\t\tNL80211_RRF_PASSIVE_SCAN | "
+ flags = flags "\n\t\t\tNL80211_RRF_NO_IR | "
} else if (flagarray[arg] == "NO-IBSS") {
- flags = flags "\n\t\t\tNL80211_RRF_NO_IBSS | "
+ flags = flags "\n\t\t\tNL80211_RRF_NO_IR | "
+ } else if (flagarray[arg] == "NO-IR") {
+ flags = flags "\n\t\t\tNL80211_RRF_NO_IR | "
}
+
}
flags = flags "0"
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 403fe29..fc47c62 100644
--- a/net/wireless/ibss.c
+++ b/net/wireless/ibss.c
@@ -258,7 +258,7 @@ int cfg80211_ibss_wext_join(struct cfg80211_registered_device *rdev,
for (i = 0; i < sband->n_channels; i++) {
chan = &sband->channels[i];
- if (chan->flags & IEEE80211_CHAN_NO_IBSS)
+ if (chan->flags & IEEE80211_CHAN_NO_IR)
continue;
if (chan->flags & IEEE80211_CHAN_DISABLED)
continue;
@@ -329,7 +329,7 @@ int cfg80211_ibss_wext_siwfreq(struct net_device *dev,
chan = ieee80211_get_channel(wdev->wiphy, freq);
if (!chan)
return -EINVAL;
- if (chan->flags & IEEE80211_CHAN_NO_IBSS ||
+ if (chan->flags & IEEE80211_CHAN_NO_IR ||
chan->flags & IEEE80211_CHAN_DISABLED)
return -EINVAL;
}
diff --git a/net/wireless/mesh.c b/net/wireless/mesh.c
index 0553fd4..b0e1869 100644
--- a/net/wireless/mesh.c
+++ b/net/wireless/mesh.c
@@ -141,8 +141,7 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
for (i = 0; i < sband->n_channels; i++) {
chan = &sband->channels[i];
- if (chan->flags & (IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN |
+ if (chan->flags & (IEEE80211_CHAN_NO_IR |
IEEE80211_CHAN_DISABLED |
IEEE80211_CHAN_RADAR))
continue;
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index cbbef88..cc5d106 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -542,12 +542,12 @@ static int nl80211_msg_put_channel(struct sk_buff *msg,
if ((chan->flags & IEEE80211_CHAN_DISABLED) &&
nla_put_flag(msg, NL80211_FREQUENCY_ATTR_DISABLED))
goto nla_put_failure;
- if ((chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) &&
- nla_put_flag(msg, NL80211_FREQUENCY_ATTR_PASSIVE_SCAN))
- goto nla_put_failure;
- if ((chan->flags & IEEE80211_CHAN_NO_IBSS) &&
- nla_put_flag(msg, NL80211_FREQUENCY_ATTR_NO_IBSS))
- goto nla_put_failure;
+ if (chan->flags & IEEE80211_CHAN_NO_IR) {
+ if (nla_put_flag(msg, NL80211_FREQUENCY_ATTR_NO_IR))
+ goto nla_put_failure;
+ if (nla_put_flag(msg, __NL80211_FREQUENCY_ATTR_NO_IBSS))
+ goto nla_put_failure;
+ }
if (chan->flags & IEEE80211_CHAN_RADAR) {
if (nla_put_flag(msg, NL80211_FREQUENCY_ATTR_RADAR))
goto nla_put_failure;
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 9851a2b..89b4664 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -163,35 +163,29 @@ static const struct ieee80211_regdomain world_regdom = {
REG_RULE(2412-10, 2462+10, 40, 6, 20, 0),
/* IEEE 802.11b/g, channels 12..13. */
REG_RULE(2467-10, 2472+10, 40, 6, 20,
- NL80211_RRF_PASSIVE_SCAN |
- NL80211_RRF_NO_IBSS),
+ NL80211_RRF_NO_IR),
/* IEEE 802.11 channel 14 - Only JP enables
* this and for 802.11b only */
REG_RULE(2484-10, 2484+10, 20, 6, 20,
- NL80211_RRF_PASSIVE_SCAN |
- NL80211_RRF_NO_IBSS |
+ NL80211_RRF_NO_IR |
NL80211_RRF_NO_OFDM),
/* IEEE 802.11a, channel 36..48 */
REG_RULE(5180-10, 5240+10, 160, 6, 20,
- NL80211_RRF_PASSIVE_SCAN |
- NL80211_RRF_NO_IBSS),
+ NL80211_RRF_NO_IR),
/* IEEE 802.11a, channel 52..64 - DFS required */
REG_RULE(5260-10, 5320+10, 160, 6, 20,
- NL80211_RRF_PASSIVE_SCAN |
- NL80211_RRF_NO_IBSS |
+ NL80211_RRF_NO_IR |
NL80211_RRF_DFS),
/* IEEE 802.11a, channel 100..144 - DFS required */
REG_RULE(5500-10, 5720+10, 160, 6, 20,
- NL80211_RRF_PASSIVE_SCAN |
- NL80211_RRF_NO_IBSS |
+ NL80211_RRF_NO_IR |
NL80211_RRF_DFS),
/* IEEE 802.11a, channel 149..165 */
REG_RULE(5745-10, 5825+10, 80, 6, 20,
- NL80211_RRF_PASSIVE_SCAN |
- NL80211_RRF_NO_IBSS),
+ NL80211_RRF_NO_IR),
/* IEEE 802.11ad (60gHz), channels 1..3 */
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,
static u32 map_regdom_flags(u32 rd_flags)
{
u32 channel_flags = 0;
- if (rd_flags & NL80211_RRF_PASSIVE_SCAN)
- channel_flags |= IEEE80211_CHAN_PASSIVE_SCAN;
- if (rd_flags & NL80211_RRF_NO_IBSS)
- channel_flags |= IEEE80211_CHAN_NO_IBSS;
+ if (rd_flags & NL80211_RRF_NO_IR_ALL)
+ channel_flags |= IEEE80211_CHAN_NO_IR;
if (rd_flags & NL80211_RRF_DFS)
channel_flags |= IEEE80211_CHAN_RADAR;
if (rd_flags & NL80211_RRF_NO_OFDM)
@@ -1067,13 +1059,8 @@ static void handle_reg_beacon(struct wiphy *wiphy, unsigned int chan_idx,
chan_before.center_freq = chan->center_freq;
chan_before.flags = chan->flags;
- if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN) {
- chan->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
- channel_changed = true;
- }
-
- if (chan->flags & IEEE80211_CHAN_NO_IBSS) {
- chan->flags &= ~IEEE80211_CHAN_NO_IBSS;
+ if (chan->flags & IEEE80211_CHAN_NO_IR) {
+ chan->flags &= ~IEEE80211_CHAN_NO_IR;
channel_changed = true;
}
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 03/14] ath10k: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez, Kalle Valo
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Cc: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/ath/ath10k/mac.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 0b1cc51..f23d61f 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)
ch->allow_vht = true;
ch->allow_ibss =
- !(channel->flags & IEEE80211_CHAN_NO_IBSS);
+ !(channel->flags & IEEE80211_CHAN_NO_IR);
ch->ht40plus =
!(channel->flags & IEEE80211_CHAN_NO_HT40PLUS);
- passive = channel->flags & IEEE80211_CHAN_PASSIVE_SCAN;
+ passive = channel->flags & IEEE80211_CHAN_NO_IR;
ch->passive = passive;
ch->freq = channel->center_freq;
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 04/14] brcm80211: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez, Arend van Spriel
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Cc: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/brcm80211/brcmfmac/p2p.c | 2 +-
.../net/wireless/brcm80211/brcmfmac/wl_cfg80211.c | 6 +-
drivers/net/wireless/brcm80211/brcmsmac/channel.c | 33 ++++-------
.../net/wireless/brcm80211/brcmsmac/mac80211_if.c | 66 +++++++++++-----------
4 files changed, 48 insertions(+), 59 deletions(-)
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
index d7a9745..fd0a497 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,
struct ieee80211_channel *chan = request->channels[i];
if (chan->flags & (IEEE80211_CHAN_RADAR |
- IEEE80211_CHAN_PASSIVE_SCAN))
+ IEEE80211_CHAN_NO_IR))
continue;
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 571f013..b32a8a3 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -202,7 +202,7 @@ static struct ieee80211_supported_band __wl_band_5ghz_a = {
/* This is to override regulatory domains defined in cfg80211 module (reg.c)
* By default world regulatory domain defined in reg.c puts the flags
- * NL80211_RRF_PASSIVE_SCAN and NL80211_RRF_NO_IBSS for 5GHz channels (for
+ * NL80211_RRF_NO_IR for 5GHz channels (for
* 36..48 and 149..165). With respect to these flags, wpa_supplicant doesn't
* start p2p operations on 5GHz channels. All the changes in world regulatory
* domain are to be done here.
@@ -5197,10 +5197,10 @@ static s32 brcmf_construct_reginfo(struct brcmf_cfg80211_info *cfg, u32 bw_cap)
if (channel & WL_CHAN_RADAR)
band_chan_arr[index].flags |=
(IEEE80211_CHAN_RADAR |
- IEEE80211_CHAN_NO_IBSS);
+ IEEE80211_CHAN_NO_IR);
if (channel & WL_CHAN_PASSIVE)
band_chan_arr[index].flags |=
- IEEE80211_CHAN_PASSIVE_SCAN;
+ IEEE80211_CHAN_NO_IR;
}
}
if (!update)
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/channel.c b/drivers/net/wireless/brcm80211/brcmsmac/channel.c
index cc87926..c99364f 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/channel.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/channel.c
@@ -59,23 +59,18 @@
#define BRCM_2GHZ_2412_2462 REG_RULE(2412-10, 2462+10, 40, 0, 19, 0)
#define BRCM_2GHZ_2467_2472 REG_RULE(2467-10, 2472+10, 20, 0, 19, \
- NL80211_RRF_PASSIVE_SCAN | \
- NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
#define BRCM_5GHZ_5180_5240 REG_RULE(5180-10, 5240+10, 40, 0, 21, \
- NL80211_RRF_PASSIVE_SCAN | \
- NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
#define BRCM_5GHZ_5260_5320 REG_RULE(5260-10, 5320+10, 40, 0, 21, \
- NL80211_RRF_PASSIVE_SCAN | \
NL80211_RRF_DFS | \
- NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
#define BRCM_5GHZ_5500_5700 REG_RULE(5500-10, 5700+10, 40, 0, 21, \
- NL80211_RRF_PASSIVE_SCAN | \
NL80211_RRF_DFS | \
- NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
#define BRCM_5GHZ_5745_5825 REG_RULE(5745-10, 5825+10, 40, 0, 21, \
- NL80211_RRF_PASSIVE_SCAN | \
- NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
static const struct ieee80211_regdomain brcms_regdom_x2 = {
.n_reg_rules = 6,
@@ -395,7 +390,7 @@ brcms_c_channel_set_chanspec(struct brcms_cm_info *wlc_cm, u16 chanspec,
brcms_c_set_gmode(wlc, wlc->protection->gmode_user, false);
brcms_b_set_chanspec(wlc->hw, chanspec,
- !!(ch->flags & IEEE80211_CHAN_PASSIVE_SCAN),
+ !!(ch->flags & IEEE80211_CHAN_NO_IR),
&txpwr);
}
@@ -657,8 +652,7 @@ static void brcms_reg_apply_radar_flags(struct wiphy *wiphy)
*/
if (!(ch->flags & IEEE80211_CHAN_DISABLED))
ch->flags |= IEEE80211_CHAN_RADAR |
- IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN;
+ IEEE80211_CHAN_NO_IR;
}
}
@@ -688,15 +682,10 @@ brcms_reg_apply_beaconing_flags(struct wiphy *wiphy,
if (IS_ERR(rule))
continue;
- if (!(rule->flags & NL80211_RRF_NO_IBSS))
- ch->flags &= ~IEEE80211_CHAN_NO_IBSS;
- if (!(rule->flags & NL80211_RRF_PASSIVE_SCAN))
- ch->flags &=
- ~IEEE80211_CHAN_PASSIVE_SCAN;
- } else if (ch->beacon_found) {
- ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN);
- }
+ if (!(rule->flags & NL80211_RRF_NO_IR))
+ ch->flags &= ~IEEE80211_CHAN_NO_IR;
+ } else if (ch->beacon_found)
+ ch->flags &= ~IEEE80211_CHAN_NO_IR;
}
}
}
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c
index edc5d10..15283e0 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[] = {
CHAN2GHZ(10, 2457, IEEE80211_CHAN_NO_HT40PLUS),
CHAN2GHZ(11, 2462, IEEE80211_CHAN_NO_HT40PLUS),
CHAN2GHZ(12, 2467,
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_IBSS |
+ IEEE80211_CHAN_NO_IR |
IEEE80211_CHAN_NO_HT40PLUS),
CHAN2GHZ(13, 2472,
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_IBSS |
+ IEEE80211_CHAN_NO_IR |
IEEE80211_CHAN_NO_HT40PLUS),
CHAN2GHZ(14, 2484,
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_IBSS |
+ IEEE80211_CHAN_NO_IR |
IEEE80211_CHAN_NO_HT40PLUS | IEEE80211_CHAN_NO_HT40MINUS |
IEEE80211_CHAN_NO_OFDM)
};
@@ -144,51 +144,51 @@ static struct ieee80211_channel brcms_5ghz_nphy_chantable[] = {
CHAN5GHZ(48, IEEE80211_CHAN_NO_HT40PLUS),
/* UNII-2 */
CHAN5GHZ(52,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40MINUS),
CHAN5GHZ(56,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40PLUS),
CHAN5GHZ(60,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40MINUS),
CHAN5GHZ(64,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40PLUS),
/* MID */
CHAN5GHZ(100,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40MINUS),
CHAN5GHZ(104,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40PLUS),
CHAN5GHZ(108,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40MINUS),
CHAN5GHZ(112,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40PLUS),
CHAN5GHZ(116,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40MINUS),
CHAN5GHZ(120,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40PLUS),
CHAN5GHZ(124,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40MINUS),
CHAN5GHZ(128,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40PLUS),
CHAN5GHZ(132,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40MINUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40MINUS),
CHAN5GHZ(136,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS),
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40PLUS),
CHAN5GHZ(140,
- IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN | IEEE80211_CHAN_NO_HT40PLUS |
+ IEEE80211_CHAN_RADAR | IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_HT40PLUS |
IEEE80211_CHAN_NO_HT40MINUS),
/* UNII-3 */
CHAN5GHZ(149, IEEE80211_CHAN_NO_HT40MINUS),
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 05/14] ipw2x00: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez, Stanislav Yakovlev
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/ipw2x00/ipw2100.c | 8 +++-----
drivers/net/wireless/ipw2x00/ipw2200.c | 16 ++++++----------
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/drivers/net/wireless/ipw2x00/ipw2100.c b/drivers/net/wireless/ipw2x00/ipw2100.c
index f8ab193..0344d52 100644
--- a/drivers/net/wireless/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
@@ -1928,12 +1928,10 @@ static int ipw2100_wdev_init(struct net_device *dev)
bg_band->channels[i].center_freq = geo->bg[i].freq;
bg_band->channels[i].hw_value = geo->bg[i].channel;
bg_band->channels[i].max_power = geo->bg[i].max_power;
- if (geo->bg[i].flags & LIBIPW_CH_PASSIVE_ONLY)
+ if (geo->bg[i].flags & (LIBIPW_CH_PASSIVE_ONLY |
+ LIBIPW_CH_NO_IBSS))
bg_band->channels[i].flags |=
- IEEE80211_CHAN_PASSIVE_SCAN;
- if (geo->bg[i].flags & LIBIPW_CH_NO_IBSS)
- bg_band->channels[i].flags |=
- IEEE80211_CHAN_NO_IBSS;
+ IEEE80211_CHAN_NO_IR;
if (geo->bg[i].flags & LIBIPW_CH_RADAR_DETECT)
bg_band->channels[i].flags |=
IEEE80211_CHAN_RADAR;
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
index f394af7..1e88b9d 100644
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
@@ -11470,12 +11470,10 @@ static int ipw_wdev_init(struct net_device *dev)
bg_band->channels[i].center_freq = geo->bg[i].freq;
bg_band->channels[i].hw_value = geo->bg[i].channel;
bg_band->channels[i].max_power = geo->bg[i].max_power;
- if (geo->bg[i].flags & LIBIPW_CH_PASSIVE_ONLY)
+ if (geo->bg[i].flags & (LIBIPW_CH_PASSIVE_ONLY |
+ LIBIPW_CH_NO_IBSS))
bg_band->channels[i].flags |=
- IEEE80211_CHAN_PASSIVE_SCAN;
- if (geo->bg[i].flags & LIBIPW_CH_NO_IBSS)
- bg_band->channels[i].flags |=
- IEEE80211_CHAN_NO_IBSS;
+ IEEE80211_CHAN_NO_IR;
if (geo->bg[i].flags & LIBIPW_CH_RADAR_DETECT)
bg_band->channels[i].flags |=
IEEE80211_CHAN_RADAR;
@@ -11509,12 +11507,10 @@ static int ipw_wdev_init(struct net_device *dev)
a_band->channels[i].center_freq = geo->a[i].freq;
a_band->channels[i].hw_value = geo->a[i].channel;
a_band->channels[i].max_power = geo->a[i].max_power;
- if (geo->a[i].flags & LIBIPW_CH_PASSIVE_ONLY)
- a_band->channels[i].flags |=
- IEEE80211_CHAN_PASSIVE_SCAN;
- if (geo->a[i].flags & LIBIPW_CH_NO_IBSS)
+ if (geo->a[i].flags & (LIBIPW_CH_PASSIVE_ONLY |
+ LIBIPW_CH_NO_IBSS))
a_band->channels[i].flags |=
- IEEE80211_CHAN_NO_IBSS;
+ IEEE80211_CHAN_NO_IR;
if (geo->a[i].flags & LIBIPW_CH_RADAR_DETECT)
a_band->channels[i].flags |=
IEEE80211_CHAN_RADAR;
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 06/14] mac80211_hwsim: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/mac80211_hwsim.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 2cd3f54..1cac658 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 = {
.reg_rules = {
REG_RULE(2412-10, 2462+10, 40, 0, 20, 0),
REG_RULE(5725-10, 5850+10, 40, 0, 30,
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS),
+ NL80211_RRF_NO_IR),
}
};
@@ -1464,7 +1464,7 @@ static void hw_scan_work(struct work_struct *work)
req->channels[hwsim->scan_chan_idx]->center_freq);
hwsim->tmp_chan = req->channels[hwsim->scan_chan_idx];
- if (hwsim->tmp_chan->flags & IEEE80211_CHAN_PASSIVE_SCAN ||
+ if (hwsim->tmp_chan->flags & IEEE80211_CHAN_NO_IR ||
!req->n_ssids) {
dwell = 120;
} else {
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 07/14] mwifiex: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez, Amitkumar Karwar, Bing Zhao
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Cc: Amitkumar Karwar <akarwar@marvell.com>
Cc: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/mwifiex/cfg80211.c | 14 +++++++-------
drivers/net/wireless/mwifiex/scan.c | 4 ++--
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c
index fbad00a..7f68943 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 = {
REG_RULE(2412-10, 2462+10, 40, 3, 20, 0),
/* Channel 12 - 13 */
REG_RULE(2467-10, 2472+10, 20, 3, 20,
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS),
+ NL80211_RRF_NO_IR),
/* Channel 14 */
REG_RULE(2484-10, 2484+10, 20, 3, 20,
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS |
+ NL80211_RRF_NO_IR |
NL80211_RRF_NO_OFDM),
/* Channel 36 - 48 */
REG_RULE(5180-10, 5240+10, 40, 3, 20,
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS),
+ NL80211_RRF_NO_IR),
/* Channel 149 - 165 */
REG_RULE(5745-10, 5825+10, 40, 3, 20,
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS),
+ NL80211_RRF_NO_IR),
/* Channel 52 - 64 */
REG_RULE(5260-10, 5320+10, 40, 3, 30,
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS |
+ NL80211_RRF_NO_IR |
NL80211_RRF_DFS),
/* Channel 100 - 140 */
REG_RULE(5500-10, 5700+10, 40, 3, 30,
- NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS |
+ NL80211_RRF_NO_IR |
NL80211_RRF_DFS),
}
};
@@ -1968,7 +1968,7 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
user_scan_cfg->chan_list[i].chan_number = chan->hw_value;
user_scan_cfg->chan_list[i].radio_type = chan->band;
- if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN)
+ if (chan->flags & IEEE80211_CHAN_NO_IR)
user_scan_cfg->chan_list[i].scan_type =
MWIFIEX_SCAN_TYPE_PASSIVE;
else
diff --git a/drivers/net/wireless/mwifiex/scan.c b/drivers/net/wireless/mwifiex/scan.c
index 8cf7d50..0ed0664 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,
scan_chan_list[chan_idx].max_scan_time =
cpu_to_le16((u16) user_scan_in->
chan_list[0].scan_time);
- else if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
+ else if (ch->flags & IEEE80211_CHAN_NO_IR)
scan_chan_list[chan_idx].max_scan_time =
cpu_to_le16(adapter->passive_scan_time);
else
scan_chan_list[chan_idx].max_scan_time =
cpu_to_le16(adapter->active_scan_time);
- if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
+ if (ch->flags & IEEE80211_CHAN_NO_IR)
scan_chan_list[chan_idx].chan_scan_mode_bitmap
|= MWIFIEX_PASSIVE_SCAN;
else
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 08/14] iwlegacy: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez, Stanislaw Gruszka
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/iwlegacy/3945-mac.c | 2 +-
drivers/net/wireless/iwlegacy/4965-mac.c | 2 +-
drivers/net/wireless/iwlegacy/common.c | 4 ++--
drivers/net/wireless/iwlegacy/debug.c | 8 ++++----
4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
index dea3b50..5a66595 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,
* and use long active_dwell time.
*/
if (!is_active || il_is_channel_passive(ch_info) ||
- (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN)) {
+ (chan->flags & IEEE80211_CHAN_NO_IR)) {
scan_ch->type = 0; /* passive */
if (IL_UCODE_API(il->ucode_ver) == 1)
scan_ch->active_dwell =
diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
index 3982ab7..1c5f8cd 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,
}
if (!is_active || il_is_channel_passive(ch_info) ||
- (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN))
+ (chan->flags & IEEE80211_CHAN_NO_IR))
scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE;
else
scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE;
diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c
index b03e22e..a27b14c 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)
if (il_is_channel_valid(ch)) {
if (!(ch->flags & EEPROM_CHANNEL_IBSS))
- geo_ch->flags |= IEEE80211_CHAN_NO_IBSS;
+ geo_ch->flags |= IEEE80211_CHAN_NO_IR;
if (!(ch->flags & EEPROM_CHANNEL_ACTIVE))
- geo_ch->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
+ geo_ch->flags |= IEEE80211_CHAN_NO_IR;
if (ch->flags & EEPROM_CHANNEL_RADAR)
geo_ch->flags |= IEEE80211_CHAN_RADAR;
diff --git a/drivers/net/wireless/iwlegacy/debug.c b/drivers/net/wireless/iwlegacy/debug.c
index eff2650..3a487a3 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,
flags & IEEE80211_CHAN_RADAR ?
" (IEEE 802.11h required)" : "",
((channels[i].
- flags & IEEE80211_CHAN_NO_IBSS) ||
+ flags & IEEE80211_CHAN_NO_IR) ||
(channels[i].
flags & IEEE80211_CHAN_RADAR)) ? "" :
", IBSS",
channels[i].
- flags & IEEE80211_CHAN_PASSIVE_SCAN ?
+ flags & IEEE80211_CHAN_NO_IR ?
"passive only" : "active/passive");
}
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,
flags & IEEE80211_CHAN_RADAR ?
" (IEEE 802.11h required)" : "",
((channels[i].
- flags & IEEE80211_CHAN_NO_IBSS) ||
+ flags & IEEE80211_CHAN_NO_IR) ||
(channels[i].
flags & IEEE80211_CHAN_RADAR)) ? "" :
", IBSS",
channels[i].
- flags & IEEE80211_CHAN_PASSIVE_SCAN ?
+ flags & IEEE80211_CHAN_NO_IR ?
"passive only" : "active/passive");
}
ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 09/14] rtlwifi: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez, Larry Finger
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/rtlwifi/regd.c | 48 ++++++++++++++++---------------------
1 file changed, 20 insertions(+), 28 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/regd.c b/drivers/net/wireless/rtlwifi/regd.c
index d7d0d49..2e1642c 100644
--- a/drivers/net/wireless/rtlwifi/regd.c
+++ b/drivers/net/wireless/rtlwifi/regd.c
@@ -59,30 +59,27 @@ static struct country_code_to_enum_rd allCountries[] = {
*/
#define RTL819x_2GHZ_CH12_13 \
REG_RULE(2467-10, 2472+10, 40, 0, 20,\
- NL80211_RRF_PASSIVE_SCAN)
+ NL80211_RRF_NO_IR)
#define RTL819x_2GHZ_CH14 \
REG_RULE(2484-10, 2484+10, 40, 0, 20, \
- NL80211_RRF_PASSIVE_SCAN | \
+ NL80211_RRF_NO_IR | \
NL80211_RRF_NO_OFDM)
/* 5G chan 36 - chan 64*/
#define RTL819x_5GHZ_5150_5350 \
REG_RULE(5150-10, 5350+10, 40, 0, 30, \
- NL80211_RRF_PASSIVE_SCAN | \
- NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
/* 5G chan 100 - chan 165*/
#define RTL819x_5GHZ_5470_5850 \
REG_RULE(5470-10, 5850+10, 40, 0, 30, \
- NL80211_RRF_PASSIVE_SCAN | \
- NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
/* 5G chan 149 - chan 165*/
#define RTL819x_5GHZ_5725_5850 \
REG_RULE(5725-10, 5850+10, 40, 0, 30, \
- NL80211_RRF_PASSIVE_SCAN | \
- NL80211_RRF_NO_IBSS)
+ NL80211_RRF_NO_IR)
#define RTL819x_5GHZ_ALL \
(RTL819x_5GHZ_5150_5350, RTL819x_5GHZ_5470_5850)
@@ -185,16 +182,12 @@ static void _rtl_reg_apply_beaconing_flags(struct wiphy *wiphy,
*regulatory_hint().
*/
- if (!(reg_rule->flags & NL80211_RRF_NO_IBSS))
- ch->flags &= ~IEEE80211_CHAN_NO_IBSS;
- if (!(reg_rule->
- flags & NL80211_RRF_PASSIVE_SCAN))
- ch->flags &=
- ~IEEE80211_CHAN_PASSIVE_SCAN;
+ if (!(reg_rule->flags & NL80211_RRF_NO_IR))
+ ch->flags &= ~IEEE80211_CHAN_NO_IR;
} else {
if (ch->beacon_found)
- ch->flags &= ~(IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN);
+ ch->flags &= ~(IEEE80211_CHAN_NO_IR |
+ IEEE80211_CHAN_NO_IR);
}
}
}
@@ -219,11 +212,11 @@ static void _rtl_reg_apply_active_scan_flags(struct wiphy *wiphy,
*/
if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) {
ch = &sband->channels[11]; /* CH 12 */
- if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
- ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
+ if (ch->flags & IEEE80211_CHAN_NO_IR)
+ ch->flags &= ~IEEE80211_CHAN_NO_IR;
ch = &sband->channels[12]; /* CH 13 */
- if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
- ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
+ if (ch->flags & IEEE80211_CHAN_NO_IR)
+ ch->flags &= ~IEEE80211_CHAN_NO_IR;
return;
}
@@ -237,17 +230,17 @@ static void _rtl_reg_apply_active_scan_flags(struct wiphy *wiphy,
ch = &sband->channels[11]; /* CH 12 */
reg_rule = freq_reg_info(wiphy, ch->center_freq);
if (!IS_ERR(reg_rule)) {
- if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
- if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
- ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
+ if (!(reg_rule->flags & NL80211_RRF_NO_IR))
+ if (ch->flags & IEEE80211_CHAN_NO_IR)
+ ch->flags &= ~IEEE80211_CHAN_NO_IR;
}
ch = &sband->channels[12]; /* CH 13 */
reg_rule = freq_reg_info(wiphy, ch->center_freq);
if (!IS_ERR(reg_rule)) {
- if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN))
- if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN)
- ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN;
+ if (!(reg_rule->flags & NL80211_RRF_NO_IR))
+ if (ch->flags & IEEE80211_CHAN_NO_IR)
+ ch->flags &= ~IEEE80211_CHAN_NO_IR;
}
}
@@ -284,8 +277,7 @@ static void _rtl_reg_apply_radar_flags(struct wiphy *wiphy)
*/
if (!(ch->flags & IEEE80211_CHAN_DISABLED))
ch->flags |= IEEE80211_CHAN_RADAR |
- IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN;
+ IEEE80211_CHAN_NO_IR;
}
}
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 10/14] mac80211: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
net/mac80211/scan.c | 10 +++++-----
net/mac80211/tx.c | 3 +--
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 5ad66a8..c22cbb5 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,
ieee80211_hw_config(local, 0);
if ((req->channels[0]->flags &
- IEEE80211_CHAN_PASSIVE_SCAN) ||
+ IEEE80211_CHAN_NO_IR) ||
!local->scan_req->n_ssids) {
next_delay = IEEE80211_PASSIVE_CHANNEL_TIME;
} else {
@@ -572,7 +572,7 @@ ieee80211_scan_get_channel_time(struct ieee80211_channel *chan)
* TODO: channel switching also consumes quite some time,
* add that delay as well to get a better estimation
*/
- if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN)
+ if (chan->flags & IEEE80211_CHAN_NO_IR)
return IEEE80211_PASSIVE_CHANNEL_TIME;
return IEEE80211_PROBE_DELAY + IEEE80211_CHANNEL_TIME;
}
@@ -696,7 +696,7 @@ static void ieee80211_scan_state_set_channel(struct ieee80211_local *local,
*
* In any case, it is not necessary for a passive scan.
*/
- if (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN ||
+ if (chan->flags & IEEE80211_CHAN_NO_IR ||
!local->scan_req->n_ssids) {
*next_delay = IEEE80211_PASSIVE_CHANNEL_TIME;
local->next_scan_state = SCAN_DECISION;
@@ -881,7 +881,7 @@ int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
struct ieee80211_channel *tmp_ch =
&local->hw.wiphy->bands[band]->channels[i];
- if (tmp_ch->flags & (IEEE80211_CHAN_NO_IBSS |
+ if (tmp_ch->flags & (IEEE80211_CHAN_NO_IR |
IEEE80211_CHAN_DISABLED))
continue;
@@ -895,7 +895,7 @@ int ieee80211_request_ibss_scan(struct ieee80211_sub_if_data *sdata,
local->int_scan_req->n_channels = n_ch;
} else {
- if (WARN_ON_ONCE(chan->flags & (IEEE80211_CHAN_NO_IBSS |
+ if (WARN_ON_ONCE(chan->flags & (IEEE80211_CHAN_NO_IR |
IEEE80211_CHAN_DISABLED)))
goto unlock;
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 9993fcb..ff1ebbf 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1695,8 +1695,7 @@ netdev_tx_t ieee80211_monitor_start_xmit(struct sk_buff *skb,
* radar detection by itself. We can do that later by adding a
* monitor flag interfaces used for AP support.
*/
- if ((chan->flags & (IEEE80211_CHAN_NO_IBSS | IEEE80211_CHAN_RADAR |
- IEEE80211_CHAN_PASSIVE_SCAN)))
+ if ((chan->flags & (IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_RADAR)))
goto fail_rcu;
ieee80211_xmit(sdata, skb, chan->band);
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 11/14] ti: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/ti/wl12xx/scan.c | 2 +-
drivers/net/wireless/ti/wlcore/cmd.c | 2 +-
drivers/net/wireless/ti/wlcore/main.c | 3 +--
drivers/net/wireless/ti/wlcore/scan.c | 8 ++++----
4 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/ti/wl12xx/scan.c b/drivers/net/wireless/ti/wl12xx/scan.c
index 4a0bbb1..7541bd1 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,
* In active scans, we only scan channels not
* marked as passive.
*/
- (passive || !(flags & IEEE80211_CHAN_PASSIVE_SCAN))) {
+ (passive || !(flags & IEEE80211_CHAN_NO_IR))) {
wl1271_debug(DEBUG_SCAN, "band %d, center_freq %d ",
req->channels[i]->band,
req->channels[i]->center_freq);
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c
index 9e5416f8..fccd8a0 100644
--- a/drivers/net/wireless/ti/wlcore/cmd.c
+++ b/drivers/net/wireless/ti/wlcore/cmd.c
@@ -1686,7 +1686,7 @@ int wlcore_cmd_regdomain_config_locked(struct wl1271 *wl)
if (channel->flags & (IEEE80211_CHAN_DISABLED |
IEEE80211_CHAN_RADAR |
- IEEE80211_CHAN_PASSIVE_SCAN))
+ IEEE80211_CHAN_NO_IR))
continue;
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 bbdd106..72ddc08 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -90,8 +90,7 @@ static void wl1271_reg_notify(struct wiphy *wiphy,
continue;
if (ch->flags & IEEE80211_CHAN_RADAR)
- ch->flags |= IEEE80211_CHAN_NO_IBSS |
- IEEE80211_CHAN_PASSIVE_SCAN;
+ ch->flags |= IEEE80211_CHAN_NO_IR;
}
diff --git a/drivers/net/wireless/ti/wlcore/scan.c b/drivers/net/wireless/ti/wlcore/scan.c
index 13e743d..e4e8978 100644
--- a/drivers/net/wireless/ti/wlcore/scan.c
+++ b/drivers/net/wireless/ti/wlcore/scan.c
@@ -166,14 +166,14 @@ wlcore_scan_get_channels(struct wl1271 *wl,
flags = req_channels[i]->flags;
if (force_passive)
- flags |= IEEE80211_CHAN_PASSIVE_SCAN;
+ flags |= IEEE80211_CHAN_NO_IR;
if ((req_channels[i]->band == band) &&
!(flags & IEEE80211_CHAN_DISABLED) &&
(!!(flags & IEEE80211_CHAN_RADAR) == radar) &&
/* if radar is set, we ignore the passive flag */
(radar ||
- !!(flags & IEEE80211_CHAN_PASSIVE_SCAN) == passive)) {
+ !!(flags & IEEE80211_CHAN_NO_IR) == passive)) {
if (flags & IEEE80211_CHAN_RADAR) {
@@ -198,7 +198,7 @@ wlcore_scan_get_channels(struct wl1271 *wl,
(band == IEEE80211_BAND_2GHZ) &&
(channels[j].channel >= 12) &&
(channels[j].channel <= 14) &&
- (flags & IEEE80211_CHAN_PASSIVE_SCAN) &&
+ (flags & IEEE80211_CHAN_NO_IR) &&
!force_passive) {
/* pactive channels treated as DFS */
channels[j].flags = SCAN_CHANNEL_FLAGS_DFS;
@@ -221,7 +221,7 @@ wlcore_scan_get_channels(struct wl1271 *wl,
max_dwell_time_active,
flags & IEEE80211_CHAN_RADAR ?
", DFS" : "",
- flags & IEEE80211_CHAN_PASSIVE_SCAN ?
+ flags & IEEE80211_CHAN_NO_IR?
", PASSIVE" : "");
j++;
}
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 12/14] cw1200: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez, Solomon Peachy
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Cc: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/cw1200/scan.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/cw1200/scan.c b/drivers/net/wireless/cw1200/scan.c
index ee3c190..8c017bf 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)
if ((*it)->band != first->band)
break;
if (((*it)->flags ^ first->flags) &
- IEEE80211_CHAN_PASSIVE_SCAN)
+ IEEE80211_CHAN_NO_IR)
break;
- if (!(first->flags & IEEE80211_CHAN_PASSIVE_SCAN) &&
+ if (!(first->flags & IEEE80211_CHAN_NO_IR) &&
(*it)->max_power != first->max_power)
break;
}
@@ -210,7 +210,7 @@ void cw1200_scan_work(struct work_struct *work)
else
scan.max_tx_rate = WSM_TRANSMIT_RATE_1;
scan.num_probes =
- (first->flags & IEEE80211_CHAN_PASSIVE_SCAN) ? 0 : 2;
+ (first->flags & IEEE80211_CHAN_NO_IR) ? 0 : 2;
scan.num_ssids = priv->scan.n_ssids;
scan.ssids = &priv->scan.ssids[0];
scan.num_channels = it - priv->scan.curr;
@@ -233,7 +233,7 @@ void cw1200_scan_work(struct work_struct *work)
}
for (i = 0; i < scan.num_channels; ++i) {
scan.ch[i].number = priv->scan.curr[i]->hw_value;
- if (priv->scan.curr[i]->flags & IEEE80211_CHAN_PASSIVE_SCAN) {
+ if (priv->scan.curr[i]->flags & IEEE80211_CHAN_NO_IR) {
scan.ch[i].min_chan_time = 50;
scan.ch[i].max_chan_time = 100;
} else {
@@ -241,7 +241,7 @@ void cw1200_scan_work(struct work_struct *work)
scan.ch[i].max_chan_time = 25;
}
}
- if (!(first->flags & IEEE80211_CHAN_PASSIVE_SCAN) &&
+ if (!(first->flags & IEEE80211_CHAN_NO_IR) &&
priv->scan.output_power != first->max_power) {
priv->scan.output_power = first->max_power;
wsm_set_output_power(priv,
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 13/14] iwlwifi: consolidate no-ibss and passive scan to no-ir
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez, Johannes Berg
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
Cc: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
drivers/net/wireless/iwlwifi/dvm/debugfs.c | 8 ++++----
drivers/net/wireless/iwlwifi/dvm/scan.c | 2 +-
drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c | 4 ++--
drivers/net/wireless/iwlwifi/iwl-nvm-parse.c | 4 ++--
drivers/net/wireless/iwlwifi/mvm/scan.c | 4 ++--
5 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
index d94f8ab..f69301e 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,
channels[i].max_power,
channels[i].flags & IEEE80211_CHAN_RADAR ?
" (IEEE 802.11h required)" : "",
- ((channels[i].flags & IEEE80211_CHAN_NO_IBSS)
+ ((channels[i].flags & IEEE80211_CHAN_NO_IR)
|| (channels[i].flags &
IEEE80211_CHAN_RADAR)) ? "" :
", IBSS",
channels[i].flags &
- IEEE80211_CHAN_PASSIVE_SCAN ?
+ IEEE80211_CHAN_NO_IR ?
"passive only" : "active/passive");
}
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,
channels[i].max_power,
channels[i].flags & IEEE80211_CHAN_RADAR ?
" (IEEE 802.11h required)" : "",
- ((channels[i].flags & IEEE80211_CHAN_NO_IBSS)
+ ((channels[i].flags & IEEE80211_CHAN_NO_IR)
|| (channels[i].flags &
IEEE80211_CHAN_RADAR)) ? "" :
", IBSS",
channels[i].flags &
- IEEE80211_CHAN_PASSIVE_SCAN ?
+ IEEE80211_CHAN_NO_IR ?
"passive only" : "active/passive");
}
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 35e0ee8..928f864 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,
channel = chan->hw_value;
scan_ch->channel = cpu_to_le16(channel);
- if (!is_active || (chan->flags & IEEE80211_CHAN_PASSIVE_SCAN))
+ if (!is_active || (chan->flags & IEEE80211_CHAN_NO_IR))
scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE;
else
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 4c887f3..f4a6d31 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,
channel->flags = IEEE80211_CHAN_NO_HT40;
if (!(eeprom_ch->flags & EEPROM_CHANNEL_IBSS))
- channel->flags |= IEEE80211_CHAN_NO_IBSS;
+ channel->flags |= IEEE80211_CHAN_NO_IR;
if (!(eeprom_ch->flags & EEPROM_CHANNEL_ACTIVE))
- channel->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
+ channel->flags |= IEEE80211_CHAN_NO_IR;
if (eeprom_ch->flags & EEPROM_CHANNEL_RADAR)
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 b76a9a8..2fab203 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,
channel->flags |= IEEE80211_CHAN_NO_160MHZ;
if (!(ch_flags & NVM_CHANNEL_IBSS))
- channel->flags |= IEEE80211_CHAN_NO_IBSS;
+ channel->flags |= IEEE80211_CHAN_NO_IR;
if (!(ch_flags & NVM_CHANNEL_ACTIVE))
- channel->flags |= IEEE80211_CHAN_PASSIVE_SCAN;
+ channel->flags |= IEEE80211_CHAN_NO_IR;
if (ch_flags & NVM_CHANNEL_RADAR)
channel->flags |= IEEE80211_CHAN_RADAR;
diff --git a/drivers/net/wireless/iwlwifi/mvm/scan.c b/drivers/net/wireless/iwlwifi/mvm/scan.c
index dff7592..e0cd100 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,
for (i = 0; i < cmd->channel_count; i++) {
chan->channel = cpu_to_le16(req->channels[i]->hw_value);
chan->type = cpu_to_le32(type);
- if (req->channels[i]->flags & IEEE80211_CHAN_PASSIVE_SCAN)
+ if (req->channels[i]->flags & IEEE80211_CHAN_NO_IR)
chan->type &= cpu_to_le32(~SCAN_CHANNEL_TYPE_ACTIVE);
chan->active_dwell = cpu_to_le16(active_dwell);
chan->passive_dwell = cpu_to_le16(passive_dwell);
@@ -642,7 +642,7 @@ static void iwl_build_channel_cfg(struct iwl_mvm *mvm,
channels->iter_count[index] = cpu_to_le16(1);
channels->iter_interval[index] = 0;
- if (!(s_band->channels[i].flags & IEEE80211_CHAN_PASSIVE_SCAN))
+ if (!(s_band->channels[i].flags & IEEE80211_CHAN_NO_IR))
channels->type[index] |=
cpu_to_le32(IWL_SCAN_OFFLOAD_CHANNEL_ACTIVE);
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 14/14] cfg80211: remove internal passive-scan and no-ibss guards
From: Luis R. Rodriguez @ 2013-10-21 17:22 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
In-Reply-To: <1382376158-25586-1-git-send-email-mcgrof@do-not-panic.com>
The internal guards for no-ibss and passive-scan flags were
left in case drivers were still using them. All drivers
have now been converted so remove these guards.
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
include/net/cfg80211.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 45eb9aa..54cc9f8 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -122,9 +122,6 @@ enum ieee80211_channel_flags {
IEEE80211_CHAN_NO_160MHZ = 1<<8,
};
-#define IEEE80211_CHAN_PASSIVE_SCAN IEEE80211_CHAN_NO_IR
-#define IEEE80211_CHAN_NO_IBSS IEEE80211_CHAN_NO_IR
-
#define IEEE80211_CHAN_NO_HT40 \
(IEEE80211_CHAN_NO_HT40PLUS | IEEE80211_CHAN_NO_HT40MINUS)
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH] cfg80211: clarify DFS / CAC case for the new NO-IR flag
From: Luis R. Rodriguez @ 2013-10-21 17:27 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
Now that the no-ibss and passive-scan flags are bundled
together its a lot easier to deal with the case of when
we support DFS. If DFS is supported on the wiphy and if
the Channel availability check (CAC) has been cleared on
the channel (dfs_state is NL80211_DFS_AVAILABLE) we can
ignore the no-ir flag.
This simplifies the paranoid requirement of bundling
together DFS and NO-IR cases by placing onus on the
DFS implementation. If code paths also want to reuse
knowledge from DFS state machines they must also ensure
that they always look at and monitor the dfs_state.
Cc: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Cc: smihir@qti.qualcomm.com
Cc: tushnimb@qca.qualcomm.com
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
This depends on the 2 series I posted just before, the ath
driver updates and the wlan driver merge of consolidating flags.
include/net/cfg80211.h | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 54cc9f8..b5cee04 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -92,7 +92,11 @@ enum ieee80211_band {
*
* @IEEE80211_CHAN_DISABLED: This channel is disabled.
* @IEEE80211_CHAN_NO_IR: do not initiate radiation, this includes
- * sending probe requests or beaconing.
+ * sending probe requests or beaconing. Channels that have
+ * %IEEE80211_CHAN_RADAR enabled can ignore this flag if
+ * and only if the Channel availability check (CAC) has
+ * been cleared on it, that is when the channel's dfs_state
+ * is %NL80211_DFS_AVAILABLE.
* @IEEE80211_CHAN_RADAR: Radar detection is required on this channel.
* @IEEE80211_CHAN_NO_HT40PLUS: extension channel above this channel
* is not permitted.
--
1.8.4.rc3
^ permalink raw reply related
* Re: [PATCH] cfg80211: fix nl80211.h documentation for DFS enum states
From: Luis R. Rodriguez @ 2013-10-21 17:28 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless
In-Reply-To: <1382375069.10511.0.camel@jlt4.sipsolutions.net>
On Mon, Oct 21, 2013 at 7:04 PM, Johannes Berg
<johannes@sipsolutions.net> wrote:
> On Mon, 2013-10-21 at 19:02 +0200, Luis R. Rodriguez wrote:
>> The names are prefixed incorrectly on the documentation.
>
> You already sent me this patch, and I applied it, I believe?
Ah yeah sorry about that.
Luis
^ permalink raw reply
* [PATCH] wireless-regdb: consolidate passive-scan and no-ibss flags
From: Luis R. Rodriguez @ 2013-10-21 17:41 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
These are used interchangeably so just do away
with the redundancy.
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
db.txt | 8 ++++----
dbparse.py | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/db.txt b/db.txt
index d0d1a3f..b8ddb1b 100644
--- a/db.txt
+++ b/db.txt
@@ -2,14 +2,14 @@
country 00:
(2402 - 2472 @ 40), (3, 20)
# Channel 12 - 13.
- (2457 - 2482 @ 40), (3, 20), PASSIVE-SCAN, NO-IBSS
+ (2457 - 2482 @ 40), (3, 20), NO-IR
# Channel 14. Only JP enables this and for 802.11b only
- (2474 - 2494 @ 20), (3, 20), PASSIVE-SCAN, NO-IBSS, NO-OFDM
+ (2474 - 2494 @ 20), (3, 20), NO-IR, NO-OFDM
# Channel 36 - 48
- (5170 - 5250 @ 80), (3, 20), PASSIVE-SCAN, NO-IBSS
+ (5170 - 5250 @ 80), (3, 20), NO-IR
# NB: 5260 MHz - 5700 MHz requies DFS
# Channel 149 - 165
- (5735 - 5835 @ 80), (3, 20), PASSIVE-SCAN, NO-IBSS
+ (5735 - 5835 @ 80), (3, 20), NO-IR
# IEEE 802.11ad (60GHz), channels 1..3
(57240 - 63720 @ 2160), (N/A, 0)
diff --git a/dbparse.py b/dbparse.py
index 32cbce9..29eb9d6 100755
--- a/dbparse.py
+++ b/dbparse.py
@@ -12,8 +12,8 @@ flag_definitions = {
'DFS': 1<<4,
'PTP-ONLY': 1<<5,
'PTMP-ONLY': 1<<6,
- 'PASSIVE-SCAN': 1<<7,
- 'NO-IBSS': 1<<8,
+ 'NO-IR': 1<<7,
+ # hole at bit 8
# hole at bit 9. FIXME: Where is NO-HT40 defined?
'NO-HT40': 1<<10,
}
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH] crda: consolidate passive-scan and no-ibss flags
From: Luis R. Rodriguez @ 2013-10-21 17:42 UTC (permalink / raw)
To: linville, johannes
Cc: linux-wireless, janusz.dziedzic, smihir, tushnimb,
Luis R. Rodriguez
We consolidate these two flags into one flag to indicate
initiating radiation is not allowed.
For parsing we'll treat the no-ibss flag moving forward
as also passive-scan as well, newer kernels will always
treat these equally, older kernels will use the still
use them separately even though in practice they are
used together interchangably.
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
regdb.h | 6 ++++--
reglib.c | 9 +++++----
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/regdb.h b/regdb.h
index 4508621..20f29e9 100644
--- a/regdb.h
+++ b/regdb.h
@@ -79,10 +79,12 @@ enum reg_rule_flags {
* links */
RRF_PTMP_ONLY = 1<<6, /* this is only for Point To Multi
* Point links */
- RRF_PASSIVE_SCAN = 1<<7, /* passive scan is required */
- RRF_NO_IBSS = 1<<8, /* IBSS is not allowed */
+ RRF_NO_IR = 1<<7, /* do not initiate radiation */
+ __RRF_NO_IBSS = 1<<8, /* old no-IBSS rule, maps to no-ir */
};
+#define RRF_NO_IR_ALL (RRF_NO_IR | __RRF_NO_IBSS)
+
/**
* enum regdb_dfs_regions - regulatory DFS regions
*
diff --git a/reglib.c b/reglib.c
index 64584f4..fa6efe0 100644
--- a/reglib.c
+++ b/reglib.c
@@ -313,6 +313,9 @@ static void reg_rule2rd(uint8_t *db, size_t dblen,
rd_power_rule->max_eirp = ntohl(power->max_eirp);
rd_reg_rule->flags = ntohl(rule->flags);
+
+ if (rd_reg_rule->flags & RRF_NO_IR_ALL)
+ rd_reg_rule->flags |= RRF_NO_IR_ALL;
}
/* Converts a file regdomain to ieee80211_regdomain, easier to manage */
@@ -694,10 +697,8 @@ static void print_reg_rule(const struct ieee80211_reg_rule *rule)
printf(", PTP-ONLY");
if (rule->flags & RRF_PTMP_ONLY)
printf(", PTMP-ONLY");
- if (rule->flags & RRF_PASSIVE_SCAN)
- printf(", PASSIVE-SCAN");
- if (rule->flags & RRF_NO_IBSS)
- printf(", NO-IBSS");
+ if (rule->flags & RRF_NO_IR_ALL)
+ printf(", NO-IR");
printf("\n");
}
--
1.8.4.rc3
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox