* Re: [PATCH 1/2] cfg80211: fix DFS channel recovery timeout
From: Johannes Berg @ 2013-10-21 13:04 UTC (permalink / raw)
To: Michal Kazior; +Cc: linux-wireless
In-Reply-To: <1382034072-13541-1-git-send-email-michal.kazior@tieto.com>
On Thu, 2013-10-17 at 11:21 -0700, Michal Kazior wrote:
> The timeout was not properly converted from msecs
> to jiffies. As a result channel transition to
> NL80211_DFS_USABLE was delayed depending on
> CONFIG_HZ configuration, e.g. HZ=100 would delay
> the NOP from 30 minutes to 300 minutes.
Applied both, but I think getting into 3.12 might be hard.
johannes
^ permalink raw reply
* Re: NetworkManager not listing access points
From: Johannes Berg @ 2013-10-21 13:06 UTC (permalink / raw)
To: Will Hawkins
Cc: Detlev Casanova, Dan Williams, linux-wireless, laurent.pinchart
In-Reply-To: <52600E1A.6070806@opentechinstitute.org>
On Thu, 2013-10-17 at 12:19 -0400, Will Hawkins wrote:
> Not to clog up the channel, but I was running into exactly the same
> problem. I expected to see the problem somewhere in the kernel, etc. I
> turned on debugging and kernel tracing and saw nothing. The fix for me
> is almost identical to the fix that Detlev first described.
>
> However, the problem for me was somewhere else entirely. The access
> point was sending out malformed beacon messages that kept it from
> showing up.
Any idea how they were malformed? Was there a bad DS IE or so?
johannes
^ permalink raw reply
* pull-request: mac80211-next 2013-10-21
From: Johannes Berg @ 2013-10-21 13:08 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless
[-- Attachment #1: Type: text/plain, Size: 4677 bytes --]
Now with build fixes for !MESH and a channel switch parsing fix.
In this round for mac80211-next I have:
* mesh channel switch support
* a CCM rewrite, using potential hardware offloads
* SMPS for AP mode
* RF-kill GPIO driver updates to make it usable as an ACPI driver
* regulatory improvements
* documentation fixes
* DFS for IBSS mode
* and a few small other fixes/improvements
Let me know if there's any problem.
johannes
The following changes since commit 7578d57520f51093f590d68e16965e2714e69747:
mac80211: implement STA CSA for drivers using channel contexts (2013-10-02 18:18:23 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git for-john
for you to fetch changes up to cf867bc30d9af3c2cdbf876224f400a81606eebe:
nl80211: fix channel switch parsing (2013-10-21 14:36:56 +0200)
----------------------------------------------------------------
Andrei Otcheretianski (1):
nl80211: fix channel switch parsing
Ard Biesheuvel (1):
mac80211: port CCMP to cryptoapi's CCM driver
Chun-Yeow Yeoh (5):
mac80211: refactor the parsing of chan switch ie
mac80211: process the CSA frame for mesh accordingly
{nl,cfg,mac}80211: enable the triggering of CSA frame in mesh
{nl,cfg,mac}80211: implement mesh channel switch userspace API
mac80211: process mesh channel switching using beacon
Emmanuel Grumbach (1):
mac80211: implement SMPS for AP
Felix Fietkau (1):
mac80211: add ieee80211_tx_prepare_skb() helper function
Heikki Krogerus (5):
net: rfkill: gpio: convert to resource managed allocation
net: rfkill: gpio: clean up clock handling
net: rfkill: gpio: spinlock-safe GPIO access
net: rfkill: gpio: prepare for DT and ACPI support
net: rfkill: gpio: add ACPI support
Johannes Berg (2):
mac80211: add missing IEEE80211_HW_SUPPORTS_HT_CCK_RATES docs
cfg80211: fix docbook references
Luis R. Rodriguez (5):
cfg80211: fix nl80211.h documentation for DFS enum states
cfg80211: rename regulatory_hint_11d() to regulatory_hint_country_ie()
cfg80211: enable regulatory hints for strict custom settings
cfg80211: simplify strict custom alpha2 regdomain check
cfg80211: export reg_initiator_name()
Marco Porsch (1):
mac80211: fixes for mesh powersave logic
Michal Kazior (1):
mac80211: fix uninitialized variable
Seth Forshee (1):
mac80211: Remove check for offchannel state when waking netdev queues
Simon Wunderlich (2):
nl80211/cfg80211: enable DFS for IBSS mode
mac80211: enable DFS for IBSS mode
Sunil Dutt (1):
cfg80211: pass station supported channel and oper class info
Documentation/DocBook/80211.tmpl | 4 +-
include/linux/ieee80211.h | 20 +++
include/net/cfg80211.h | 23 +++
include/net/mac80211.h | 18 +++
include/uapi/linux/nl80211.h | 27 +++-
net/mac80211/Kconfig | 12 ++
net/mac80211/aes_ccm.c | 169 ++++++++--------------
net/mac80211/aes_ccm.h | 14 +-
net/mac80211/cfg.c | 142 +++++++++++++++++-
net/mac80211/debug.h | 10 ++
net/mac80211/debugfs_netdev.c | 25 ++--
net/mac80211/ht.c | 41 ++++--
net/mac80211/ibss.c | 116 +++++++--------
net/mac80211/ieee80211_i.h | 50 +++++--
net/mac80211/iface.c | 2 +
net/mac80211/key.h | 2 +-
net/mac80211/mesh.c | 302 ++++++++++++++++++++++++++++++++++++++-
net/mac80211/mesh_plink.c | 3 +-
net/mac80211/mesh_ps.c | 33 +++--
net/mac80211/mlme.c | 34 +++--
net/mac80211/rx.c | 5 +-
net/mac80211/spectmgmt.c | 33 +++--
net/mac80211/sta_info.c | 72 ++++++++++
net/mac80211/sta_info.h | 5 +
net/mac80211/status.c | 31 ++--
net/mac80211/tx.c | 45 ++++++
net/mac80211/util.c | 124 +++++++++++++++-
net/mac80211/wpa.c | 44 +++---
net/rfkill/Kconfig | 2 +-
net/rfkill/rfkill-gpio.c | 211 +++++++++++++--------------
net/wireless/chan.c | 3 +-
net/wireless/ibss.c | 24 +++-
net/wireless/nl80211.c | 62 +++++++-
net/wireless/reg.c | 39 +++--
net/wireless/reg.h | 4 +-
net/wireless/sme.c | 4 +-
net/wireless/util.c | 14 +-
37 files changed, 1306 insertions(+), 463 deletions(-)
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
^ permalink raw reply
* pull-request: mac80211 2013-10-21
From: Johannes Berg @ 2013-10-21 13:10 UTC (permalink / raw)
To: John Linville; +Cc: linux-wireless
[-- Attachment #1: Type: text/plain, Size: 1037 bytes --]
John,
Unfortunately we have yet more fixes for mac80211.
I have two DFS fixes (ath9k already supports DFS) and a fix for a
pointer race.
Let me know if there's any problem.
johannes
The following changes since commit 095d81cee742fc31e1218077ca6ca8f0df07c613:
mac80211: disable WMM with invalid parameters (2013-10-17 15:38:22 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git for-john
for you to fetch changes up to bbe09bbcf4454e826e3fb08e87d81f32c0030658:
cfg80211: update dfs_state_entered upon dfs_state change (2013-10-21 14:50:27 +0200)
----------------------------------------------------------------
Johannes Berg (1):
cfg80211: fix scheduled scan pointer access
Michal Kazior (2):
cfg80211: fix DFS channel recovery timeout
cfg80211: update dfs_state_entered upon dfs_state change
net/wireless/mlme.c | 6 ++++--
net/wireless/scan.c | 4 ++--
2 files changed, 6 insertions(+), 4 deletions(-)
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
^ permalink raw reply
* Re: [PATCH v2 0/8] ath10k: fixes 2013-10-15
From: Kalle Valo @ 2013-10-21 14:15 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless
In-Reply-To: <20131016134503.25095.8044.stgit@localhost6.localdomain6>
Kalle Valo <kvalo@qca.qualcomm.com> writes:
> This is Michal's patchset which he said:
>
> This is a bunch of fixes I've had queued up for
> some time now. I was reluctant to send them without some additional checks
> and because some of the fixes are not ideal. At least we can get a discussion
> going if anything raises any serious concern.
>
> For v2 I added one patch myself, modified "ath10k: fix device initialization
> routine" to use ath10k_pci_write32() style of wrappers and fixed long line warnings
> from checkpatch.
>
> ---
>
> Kalle Valo (1):
> ath10k: implement ath10k_pci_soc_read/write32()
>
> Michal Kazior (7):
> ath10k: prevent starting monitor without a vdev
> ath10k: add sanity checks for monitor management
> ath10k: fix endianess in prints
> ath10k: fix NSS reporting in RX
> ath10k: fix NULL deref upon early FW crash
> ath10k: fix FW crashes on heavy TX on 10.1.389 AP FW
These patches applied.
> ath10k: fix device initialization routine
I dropped this patch for now, because of some of the warm reset issues.
We need to investigate more.
--
Kalle Valo
^ permalink raw reply
* Re: [PATCH] ath10k: add error handling to ath10k_pci_wait()
From: Kalle Valo @ 2013-10-21 14:19 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless
In-Reply-To: <20131017083615.31028.25088.stgit@localhost6.localdomain6>
Kalle Valo <kvalo@qca.qualcomm.com> writes:
> ath10k_pci_wait() didn't notify any errors to callers, it
> just printed a warning so add proper error handling.
>
> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Applied, I just changed the commit log to this:
commit f3782744c9b50edf94d28e37a937ff84f267dfab
Author: Kalle Valo <kvalo@qca.qualcomm.com>
Date: Thu Oct 17 11:36:15 2013 +0300
ath10k: add error handling to ath10k_pci_wait()
ath10k_pci_wait() didn't notify any errors to callers, it
just printed a warning so add proper error handling. This fixes
a crash Ben reported:
ath10k: MSI-X interrupt handling (8 intrs)
ath10k: Unable to wakeup target
ath10k: target took longer 5000 us to wake up (awake count 1)
ath10k: Failed to get pcie state addr: -16
ath10k: early firmware event indicated
BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
IP: [<ffffffffa06ae46c>] ath10k_ce_completed_send_next+0x47/0x122 [ath10k_pci]
Reported-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
--
Kalle Valo
^ permalink raw reply
* Re: Active scanning on DFS channels
From: Kalle Valo @ 2013-10-21 14:29 UTC (permalink / raw)
To: Luis R. Rodriguez
Cc: Lorenzo Bianconi, linux-wireless, Johannes Berg, Simon Wunderlich
In-Reply-To: <CAB=NE6U94K_KvhcPUvPL+S25Nw5J1Y300ASADa7C6-J_pBEW3A@mail.gmail.com>
"Luis R. Rodriguez" <mcgrof@do-not-panic.com> writes:
> On Mon, Oct 21, 2013 at 8:19 AM, Kalle Valo <kvalo@adurom.com> wrote:
>> "Luis R. Rodriguez" <mcgrof@do-not-panic.com> writes:
>>
>>>> Should we perform
>>>> passive scan on radar channel setting new state to SCAN_DECISION and
>>>> not to SCAN_SEND_PROBE in ieee80211_scan_state_set_channel()?
>>>
>>> There's a few thing we need to do and I'm working on it.
>>>
>>> 1) no-ibss and passive-scan flags should be merged to a no-ir flag
>>
>> For me IR always reminds of infrared, so the name no-ir is a bit vague
>> to me :)
>
> Any recommendations? I'm just lazy.
no-sta-tx sounds dumb, but I can't think of anything better. Sorry.
--
Kalle Valo
^ permalink raw reply
* French regulatory domain change request
From: Jean-Pierre Tosoni @ 2013-10-21 15:05 UTC (permalink / raw)
To: linux-wireless, wireless-regdb
Hello all,
The current description for France in regdb.txt is :
country FR: DFS-ETSI
(2402 - 2482 @ 40), (N/A, 20)
(5170 - 5250 @ 80), (N/A, 20)
(5250 - 5330 @ 80), (N/A, 20), DFS
(5490 - 5710 @ 80), (N/A, 27), DFS
# 60 gHz band channels 1-4, ref: Etsi En 302 567
(57240 - 65880 @ 2160), (N/A, 40), NO-OUTDOOR
Following this paper http://www.arcep.fr/uploads/tx_gsavis/08-0568.pdf
" Décision n° 2008-0568" issued by the ARCEP (French Electronic
communications and Postoffice Regulation Authority) in the year 2008,
1) the frequencies 5150-5350 MHz are limited to INDOOR use.
(see page 5: "Dans la bande de fréquences*5150-5350* MHz, les WAS/RLAN sont
limités à une *utilisation intérieure* ...")
2) the limits of the frequency band is ~20MHz greater for all frequency
values (5150 vs. 5170, 5350 vs. 5330, 5470 vs. 5490, 5725 vs. 5710)
So IMHO the description for France should read:
country FR: DFS-ETSI
(2402 - 2482 @ 40), (N/A, 20)
# ref: ARCEP 08-0568
http://www.arcep.fr/uploads/tx_gsavis/08-0568.pdf
(5150 - 5250 @ 80), (N/A, 20), NO-OUTDOOR
(5250 - 5350 @ 80), (N/A, 20), NO-OUTDOOR, DFS
(5470 - 5725 @ 80), (N/A, 27), DFS
# 60 gHz band channels 1-4, ref: Etsi En 302 567
(57240 - 65880 @ 2160), (N/A, 40), NO-OUTDOOR
By the way, this looks very like the description for Germany (DE) now!
Regards,
Jean-Pierre
^ permalink raw reply
* Re: rtl8187 AP/Master mode
From: Larry Finger @ 2013-10-21 16:20 UTC (permalink / raw)
To: Mark Moes, linux-wireless@vger.kernel.org
In-Reply-To: <DUB119-W4825EB1294BF48BA2BAAB39E010@phx.gbl>
On 10/21/2013 06:21 AM, Mark Moes wrote:
> Hi,
>
>
> I was wondering if there's any work being done on the AP/Master mode implementation of the rtl8187 chip as listed here: http://wireless.kernel.org/en/users/Drivers/rtl8187
>
> If not, could anyone give a guesstimate of how much work is needed to write the code for this functionality?
The RTL8187L chip does not implement QoS queuing. It might work in an AP, but it
would certainly fall over with a heavy load. The RTL8187B might work better.
When you add the fact that the internal workings of these chips are unpublished
and unknown to us, implementing either AP or Master mode would likely be difficult.
It is impossible to guesstimate the time required. All that I can tell you is
that adapting this driver to work with either of these two modes is very low on
my priority list.
Larry
^ permalink raw reply
* [PATCH] cfg80211: fix nl80211.h documentation for DFS enum states
From: Luis R. Rodriguez @ 2013-10-21 17:02 UTC (permalink / raw)
To: johannes; +Cc: linux-wireless, Luis R. Rodriguez
The names are prefixed incorrectly on the documentation.
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
---
include/uapi/linux/nl80211.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 71b519f..6ab79ea 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -3860,11 +3860,11 @@ enum nl80211_radar_event {
*
* Channel states used by the DFS code.
*
- * @IEEE80211_DFS_USABLE: The channel can be used, but channel availability
+ * @NL80211_DFS_USABLE: The channel can be used, but channel availability
* check (CAC) must be performed before using it for AP or IBSS.
- * @IEEE80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it
+ * @NL80211_DFS_UNAVAILABLE: A radar has been detected on this channel, it
* is therefore marked as not available.
- * @IEEE80211_DFS_AVAILABLE: The channel has been CAC checked and is available.
+ * @NL80211_DFS_AVAILABLE: The channel has been CAC checked and is available.
*/
enum nl80211_dfs_state {
--
1.8.4.rc3
^ permalink raw reply related
* Re: [PATCH] cfg80211: fix nl80211.h documentation for DFS enum states
From: Johannes Berg @ 2013-10-21 17:04 UTC (permalink / raw)
To: Luis R. Rodriguez; +Cc: linux-wireless
In-Reply-To: <1382374934-24188-1-git-send-email-mcgrof@do-not-panic.com>
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?
johannes
^ permalink raw reply
* [PATCH 0/5] ath: simplify radar / beaconing flag settings
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
John, Johannes,
these patches start cleaning up the flag usage through the reg-notifier
but the main motiviation here as to help clarify the case in which
DFS is supported and we don't need to apply some paranoid flags. I've
determined its best to clean this up on cfg80211 (unifying flags)
and deal with the DFS case in cfg80211 as well (I add the documentation,
but expect Januz to send a respective change later for DFS).
Given that the later patches cfg80211 / other drivers I'll let you
guys decide what tree these bubble up through.
This series simplifies the flag application setup. Just a heads up I
noticed that broadcom and rtl drivers share a lot of this code so
eventually we may want to just export these and share them somehow.
Luis R. Rodriguez (5):
ath: fix logic on ath_reg_apply_active_scan_flags()
ath: clean up ath_reg_apply_active_scan_flags()
ath: rename ath_reg_apply_active_scan_flags() to
ath_reg_apply_ir_flags()
ath: simplify ath_reg_apply_beaconing_flags()
ath: move the channel for ath_reg_apply_beaconing_flags() into helper
drivers/net/wireless/ath/regd.c | 174 ++++++++++++++++++++++------------------
1 file changed, 94 insertions(+), 80 deletions(-)
--
1.8.4.rc3
^ permalink raw reply
* [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: <1382375664-25417-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 0/5] ath: simplify radar / beaconing flag settings
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
John, Johannes,
these patches start cleaning up the flag usage through the reg-notifier
but the main motiviation here as to help clarify the case in which
DFS is supported and we don't need to apply some paranoid flags. I've
determined its best to clean this up on cfg80211 (unifying flags)
and deal with the DFS case in cfg80211 as well (I add the documentation,
but expect Januz to send a respective change later for DFS).
Given that the later patches cfg80211 / other drivers I'll let you
guys decide what tree these bubble up through.
This series simplifies the flag application setup. Just a heads up I
noticed that broadcom and rtl drivers share a lot of this code so
eventually we may want to just export these and share them somehow.
Luis R. Rodriguez (5):
ath: fix logic on ath_reg_apply_active_scan_flags()
ath: clean up ath_reg_apply_active_scan_flags()
ath: rename ath_reg_apply_active_scan_flags() to
ath_reg_apply_ir_flags()
ath: simplify ath_reg_apply_beaconing_flags()
ath: move the channel for ath_reg_apply_beaconing_flags() into helper
drivers/net/wireless/ath/regd.c | 174 ++++++++++++++++++++++------------------
1 file changed, 94 insertions(+), 80 deletions(-)
--
1.8.4.rc3
^ permalink raw reply
* [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
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