* [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
* Re: Updates to 3.8 kernel break b43 Wireless with 4331 chipset
From: Larry Finger @ 2013-10-21 18:31 UTC (permalink / raw)
To: andrewl733, linux-wireless
In-Reply-To: <8D09C98149E95D8-27D8-2CD34@Webmail-d105.sysops.aol.com>
It may just be me, but I kept getting a "deja vu" feeling when I read your
report. Please minimize the repetition of material.
Unfortunately, I do not have a 4331 device, and I cannot duplicate your result.
Ideally, the best approach would be for you to clone the Linux mainline git repo
and verify that the latest 3.12-rc6 has the problem. If so, then you could
bisect between that version and 3.8 to determine the commit that caused the
failures. As I have no idea of your facility with kernel builds, that may be
beyond your ability.
If you can locate an on-line list of the kernel changes between 3.8.13-1 and
3.8.13.4-1 and post a URL, it might be possible for us to spot the faulty
change. I do not even know how to interpret those versions. To me, it seems that
both are based on 3.8.13. As 3.8 is EOL and not being updated by any of the
kernel developers, all changes are now being done by Mageia. Thus, only they
know what was done.
Larry
^ permalink raw reply
* Re: NetworkManager not listing access points
From: Will Hawkins @ 2013-10-21 20:20 UTC (permalink / raw)
To: Johannes Berg
Cc: Detlev Casanova, Dan Williams, linux-wireless, laurent.pinchart
In-Reply-To: <1382360786.14310.47.camel@jlt4.sipsolutions.net>
[-- Attachment #1: Type: text/plain, Size: 979 bytes --]
On 10/21/2013 09:06 AM, Johannes Berg wrote:
> 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?
I'm not enough of an expert to answer your question definitively.
However, I've included the malformed packet as an attachment. I've
stripped identifying information (hopefully), but think that this will
still give you information to answer the question.
If this is not sufficient, please let me know! I'm glad to help however
I can.
Will
>
> johannes
>
>
[-- Attachment #2: malformed-beacon (filtered).txt --]
[-- Type: text/plain, Size: 26060 bytes --]
No. Time Source Destination Protocol Length Info
22955 54.834442 xxxxxxxxxxxxxxxxx Broadcast 802.11 295 Beacon frame, SN=382, FN=0, Flags=........, BI=100, SSID=xxxx[Malformed Packet]
Frame 22955: 295 bytes on wire (2360 bits), 295 bytes captured (2360 bits)
Arrival Time: Oct 7, 2013 11:18:42.842426000 EDT
Epoch Time: 1381159122.842426000 seconds
[Time delta from previous captured frame: 0.009828000 seconds]
[Time delta from previous displayed frame: 0.009828000 seconds]
[Time since reference or first frame: 54.834442000 seconds]
Frame Number: 22955
Frame Length: 295 bytes (2360 bits)
Capture Length: 295 bytes (2360 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: radiotap:wlan]
Radiotap Header v0, Length 18
Header revision: 0
Header pad: 0
Header length: 18
Present flags
.... .... .... .... .... .... .... ...0 = TSFT: False
.... .... .... .... .... .... .... ..1. = Flags: True
.... .... .... .... .... .... .... .1.. = Rate: True
.... .... .... .... .... .... .... 1... = Channel: True
.... .... .... .... .... .... ...0 .... = FHSS: False
.... .... .... .... .... .... ..1. .... = dBm Antenna Signal: True
.... .... .... .... .... .... .0.. .... = dBm Antenna Noise: False
.... .... .... .... .... .... 0... .... = Lock Quality: False
.... .... .... .... .... ...0 .... .... = TX Attenuation: False
.... .... .... .... .... ..0. .... .... = dB TX Attenuation: False
.... .... .... .... .... .0.. .... .... = dBm TX Power: False
.... .... .... .... .... 1... .... .... = Antenna: True
.... .... .... .... ...0 .... .... .... = dB Antenna Signal: False
.... .... .... .... ..0. .... .... .... = dB Antenna Noise: False
.... .... .... .... .1.. .... .... .... = RX flags: True
.... .... .... .0.. .... .... .... .... = Channel+: False
.... .... .... 0... .... .... .... .... = HT information: False
..0. .... .... .... .... .... .... .... = Radiotap NS next: False
.0.. .... .... .... .... .... .... .... = Vendor NS next: False
0... .... .... .... .... .... .... .... = Ext: False
Flags: 0x00
.... ...0 = CFP: False
.... ..0. = Preamble: Long
.... .0.. = WEP: False
.... 0... = Fragmentation: False
...0 .... = FCS at end: False
..0. .... = Data Pad: False
.0.. .... = Bad FCS: False
0... .... = Short GI: False
Data Rate: 1.0 Mb/s
Channel frequency: 2437 [BG 6]
Channel type: 802.11b (0x00a0)
.... .... ...0 .... = Turbo: False
.... .... ..1. .... = Complementary Code Keying (CCK): True
.... .... .0.. .... = Orthogonal Frequency-Division Multiplexing (OFDM): False
.... .... 1... .... = 2 GHz spectrum: True
.... ...0 .... .... = 5 GHz spectrum: False
.... ..0. .... .... = Passive: False
.... .0.. .... .... = Dynamic CCK-OFDM: False
.... 0... .... .... = Gaussian Frequency Shift Keying (GFSK): False
...0 .... .... .... = GSM (900MHz): False
..0. .... .... .... = Static Turbo: False
.0.. .... .... .... = Half Rate Channel (10MHz Channel Width): False
0... .... .... .... = Quarter Rate Channel (5MHz Channel Width): False
SSI Signal: -48 dBm
Antenna: 3
RX flags: 0x0000
.... .... .... .... .... ..0. = Bad PLCP: False
IEEE 802.11 Beacon frame, Flags: ........
Type/Subtype: Beacon frame (0x08)
Frame Control: 0x0080 (Normal)
Version: 0
Type: Management frame (0)
Subtype: 8
Flags: 0x0
.... ..00 = DS status: Not leaving DS or network is operating in AD-HOC mode (To DS: 0 From DS: 0) (0x00)
.... .0.. = More Fragments: This is the last fragment
.... 0... = Retry: Frame is not being retransmitted
...0 .... = PWR MGT: STA will stay up
..0. .... = More Data: No data buffered
.0.. .... = Protected flag: Data is not protected
0... .... = Order flag: Not strictly ordered
Duration: 0
Destination address: Broadcast (ff:ff:ff:ff:ff:ff)
Source address: xxxx
BSS Id: xxxx
Fragment number: 0
Sequence number: 382
IEEE 802.11 wireless LAN management frame
Fixed parameters (12 bytes)
Timestamp: 0x00000314d3051180
Beacon Interval: 0.102400 [Seconds]
Capabilities Information: 0x0131
.... .... .... ...1 = ESS capabilities: Transmitter is an AP
.... .... .... ..0. = IBSS status: Transmitter belongs to a BSS
.... ..0. .... 00.. = CFP participation capabilities: No point coordinator at AP (0x0000)
.... .... ...1 .... = Privacy: AP/STA can support WEP
.... .... ..1. .... = Short Preamble: Short preamble allowed
.... .... .0.. .... = PBCC: PBCC modulation not allowed
.... .... 0... .... = Channel Agility: Channel agility not in use
.... ...1 .... .... = Spectrum Management: dot11SpectrumManagementRequired TRUE
.... .0.. .... .... = Short Slot Time: Short slot time not in use
.... 0... .... .... = Automatic Power Save Delivery: apsd not implemented
..0. .... .... .... = DSSS-OFDM: DSSS-OFDM modulation not allowed
.0.. .... .... .... = Delayed Block Ack: delayed block ack not implemented
0... .... .... .... = Immediate Block Ack: immediate block ack not implemented
Tagged parameters (241 bytes)
Tag: SSID parameter set: xxxx
Tag Number: SSID parameter set (0)
Tag length: 14
SSID: xxxx
Tag: Supported Rates 1(B), 2(B), 5.5(B), 11(B), 6, 9, 12, 18, [Mbit/sec]
Tag Number: Supported Rates (1)
Tag length: 8
Supported Rates: 1(B)
Supported Rates: 2(B)
Supported Rates: 5.5(B)
Supported Rates: 11(B)
Supported Rates: 6
Supported Rates: 9
Supported Rates: 12
Supported Rates: 18
Tag: DS Parameter set : Current Channel: 6
Tag Number: DS Parameter set (3)
Tag length: 1
Current Channel: 6
Tag: Traffic Indication Map (TIM): DTIM 0 of 0 bitmap
Tag Number: Traffic Indication Map (TIM) (5)
Tag length: 4
DTIM count: 0
DTIM period: 1
Bitmap control: 0x00
.... ...0 = Multicast: False
0000 000. = Bitmap Offset: 0x00
Partial Virtual Bitmap: 00
Tag: Country Information: Country Code AU, Environment Any
Tag Number: Country Information (7)
Tag length: 6
Code: AU
Environment: Any (0x20)
Country Info: First Channel Number: 1, Number of Channels: 13, Maximum Transmit Power Level: 22 dBm
First Channel Number: 1
Number of Channels: 13
Maximum Transmit Power Level (in dBm): 22
Tag: Power Constraint :0
Tag Number: Power Constraint (32)
Tag length: 1
Local Power Constraint: 0x00
Tag: ERP Information
Tag Number: ERP Information (42)
Tag length: 1
ERP Information: 0x02
.... ...0 = Non ERP Present: Not set
.... ..1. = Use Protection: Set
.... .0.. = Barker Preamble Mode: Not set
0000 0... = Reserved: 0x00
Tag: RSN Information
Tag Number: RSN Information (48)
Tag length: 24
RSN Version: 24
Group Cipher Suite: 00-0f-ac (Ieee8021) TKIP
Group Cipher Suite OUI: 00-0f-ac (Ieee8021)
Group Cipher Suite type: TKIP (2)
Pairwise Cipher Suite Count: 2
Pairwise Cipher Suite List 00-0f-ac (Ieee8021) AES (CCM) 00-0f-ac (Ieee8021) TKIP
Pairwise Cipher Suite: 00-0f-ac (Ieee8021) AES (CCM)
Pairwise Cipher Suite OUI: 00-0f-ac (Ieee8021)
Pairwise Cipher Suite type: AES (CCM) (4)
Pairwise Cipher Suite: 00-0f-ac (Ieee8021) TKIP
Pairwise Cipher Suite OUI: 00-0f-ac (Ieee8021)
Pairwise Cipher Suite type: TKIP (2)
Auth Key Management (AKM) Suite Count: 2
Auth Key Management (AKM) List 00-0f-ac (Ieee8021) PSK
Auth Key Management (AKM) Suite: 00-0f-ac (Ieee8021) PSK
Auth Key Management (AKM) OUI: 00-0f-ac (Ieee8021)
Auth Key Management (AKM) type: PSK (2)
Auth Key Management (AKM) Suite: 00-00-32 (Marconi) FT using PSK
Auth Key Management (AKM) OUI: 00-00-32 (Marconi)
Auth Key Management (AKM) type: 4
RSN Capabilities: 0x4830
.... .... .... ...0 = RSN Pre-Auth capabilities: Transmitter does not support pre-authentication
.... .... .... ..0. = RSN No Pairwise capabilities: Transmitter can support WEP default key 0 simultaneously with Pairwise key
.... .... .... 00.. = RSN PTKSA Replay Counter capabilities: 1 replay counter per PTKSA/GTKSA/STAKeySA (0x0000)
.... .... ..11 .... = RSN GTKSA Replay Counter capabilities: 16 replay counters per PTKSA/GTKSA/STAKeySA (0x0003)
.... .... .0.. .... = Management Frame Protection Required: False
.... .... 0... .... = Management Frame Protection Capable: False
.... ..0. .... .... = PeerKey Enabled: False
Tag: Extended Supported Rates 24, 36, 48, 54, [Mbit/sec]
Tag Number: Extended Supported Rates (50)
Tag length: 4
Extented Supported Rates: 24
Extented Supported Rates: 36
Extented Supported Rates: 48
Extented Supported Rates: 54
Tag: HT Capabilities (802.11n D1.10)
Tag Number: HT Capabilities (802.11n D1.10) (45)
Tag length: 26
HT Capabilities Info: 0x018c
.... .... .... ...0 = HT LDPC coding capability: Transmitter does not support receiving LDPC coded packets
.... .... .... ..0. = HT Support channel width: Transmitter only supports 20MHz operation
.... .... .... 11.. = HT SM Power Save: SM Power Save disabled (0x0003)
.... .... ...0 .... = HT Green Field: Transmitter is not able to receive PPDUs with Green Field (GF) preamble
.... .... ..0. .... = HT Short GI for 20MHz: Not supported
.... .... .0.. .... = HT Short GI for 40MHz: Not supported
.... .... 1... .... = HT Tx STBC: Supported
.... ..01 .... .... = HT Rx STBC: Rx support of one spatial stream (0x0001)
.... .0.. .... .... = HT Delayed Block ACK: Transmitter does not support HT-Delayed BlockAck
.... 0... .... .... = HT Max A-MSDU length: 3839 bytes
...0 .... .... .... = HT DSSS/CCK mode in 40MHz: Won't/Can't use of DSSS/CCK in 40 MHz
..0. .... .... .... = HT PSMP Support: Won't/Can't support PSMP operation
.0.. .... .... .... = HT Forty MHz Intolerant: Use of 40 MHz transmissions unrestricted/allowed
0... .... .... .... = HT L-SIG TXOP Protection support: Not supported
A-MPDU Parameters: 0x001b
.... ..11 = Maximum Rx A-MPDU Length: 65535 [Bytes]
...1 10.. = MPDU Density: 8 [usec] (0x06)
000. .... = Reserved: 0x00
Rx Supported Modulation and Coding Scheme Set: MCS Set
Tag interpretation: Rx Modulation and Coding Scheme (One bit per modulation)
.... .... .... .... .... .... 1111 1111 = Rx Bitmask Bits 0-7: 0x000000ff
.... .... .... .... 0111 1111 .... .... = Rx Bitmask Bits 8-15: 0x0000007f
.... .... 0000 0000 .... .... .... .... = Rx Bitmask Bits 16-23: 0x00000000
0000 0000 .... .... .... .... .... .... = Rx Bitmask Bits 24-31: 0x00000000
.... .... .... .... .... .... .... ...0 = Rx Bitmask Bit 32: 0x00000000
.... .... .... .... .... .... .000 000. = Rx Bitmask Bits 33-38: 0x00000000
.... .... ...0 0000 0000 0000 0... .... = Rx Bitmask Bits 39-52: 0x00000000
...0 0000 0000 0000 0000 0000 000. .... = Rx Bitmask Bits 53-76: 0x00000000
Highest Supported Data Rate: 0x0000
.... .... .... ...0 = Tx Supported MCS Set: Not Defined
.... .... .... ..0. = Tx and Rx MCS Set: Equal
.... .... .... 00.. = Tx Maximum Number of Spatial Streams Supported: 1 spatial stream (0x0000)
.... .... ...0 .... = Unequal Modulation: Not supported
HT Extended Capabilities: 0x0000
.... .... .... ...0 = Transmitter supports PCO: Not supported
.... .... .... .00. = Time needed to transition between 20MHz and 40MHz: No Transition (0x0000)
.... ..00 .... .... = MCS Feedback capability: STA does not provide MCS feedback (0x0000)
.... .0.. .... .... = High Throughput: Not supported
.... 0... .... .... = Reverse Direction Responder: Not supported
Transmit Beam Forming (TxBF) Capabilities: 0x0000
.... .... .... .... .... .... .... ...0 = Transmit Beamforming: Not supported
.... .... .... .... .... .... .... ..0. = Receive Staggered Sounding: Not supported
.... .... .... .... .... .... .... .0.. = Transmit Staggered Sounding: Not supported
.... .... .... .... .... .... .... 0... = Receive Null Data packet (NDP): Not supported
.... .... .... .... .... .... ...0 .... = Transmit Null Data packet (NDP): Not supported
.... .... .... .... .... .... ..0. .... = Implicit TxBF capable: Not supported
.... .... .... .... .... .... 00.. .... = Calibration: incapable (0x00000000)
.... .... .... .... .... ...0 .... .... = STA can apply TxBF using CSI explicit feedback: Not supported
.... .... .... .... .... ..0. .... .... = STA can apply TxBF using uncompressed beamforming feedback matrix: Not supported
.... .... .... .... .... .0.. .... .... = STA can apply TxBF using compressed beamforming feedback matrix: Not supported
.... .... .... .... ...0 0... .... .... = Receiver can return explicit CSI feedback: not supported (0x00000000)
.... .... .... .... .00. .... .... .... = Receiver can return explicit uncompressed Beamforming Feedback Matrix: not supported (0x00000000)
.... .... .... ...0 0... .... .... .... = STA can compress and use compressed Beamforming Feedback Matrix: not supported (0x00000000)
.... .... .... .00. .... .... .... .... = Minimal grouping used for explicit feedback reports: No grouping supported (0x00000000)
.... .... ...0 0... .... .... .... .... = Max antennae STA can support when CSI feedback required: 1 TX antenna sounding (0x00000000)
.... .... .00. .... .... .... .... .... = Max antennae STA can support when uncompressed Beamforming feedback required: 1 TX antenna sounding (0x00000000)
.... ...0 0... .... .... .... .... .... = Max antennae STA can support when compressed Beamforming feedback required: 1 TX antenna sounding (0x00000000)
.... .00. .... .... .... .... .... .... = Maximum number of rows of CSI explicit feedback: 1 row of CSI (0x00000000)
...0 0... .... .... .... .... .... .... = Maximum number of space time streams for which channel dimensions can be simultaneously estimated: 1 space time stream (0x00000000)
000. .... .... .... .... .... .... .... = Reserved: 0x00000000
Antenna Selection (ASEL) Capabilities: 0x00
.... ...0 = Antenna Selection Capable: Not supported
.... ..0. = Explicit CSI Feedback Based Tx ASEL: Not supported
.... .0.. = Antenna Indices Feedback Based Tx ASEL: Not supported
.... 0... = Explicit CSI Feedback: Not supported
...0 .... = Antenna Indices Feedback: Not supported
..0. .... = Rx ASEL: Not supported
.0.. .... = Tx Sounding PPDUs: Not supported
0... .... = Reserved: 0x00
Tag: AP Channel Report: Tag 51 Len 26
Tag Number: AP Channel Report (51)
Tag length: 26
Tag interpretation: Not interpreted
Tag: HT Information (802.11n D1.10)
Tag Number: HT Information (802.11n D1.10) (61)
Tag length: 22
Primary Channel: 6
HT Information Subset (1 of 3): 0x00
.... ..00 = Secondary channel offset: No secondary channel (0x00)
.... .0.. = Supported channel width: 20 MHz channel width only
.... 0... = Reduced Interframe Spacing (RIFS): Prohibited
...0 .... = Power Save Multi-Poll (PSMP) stations only: Association requests are accepted regardless of PSMP capability
000. .... = Shortest service interval: 5 ms (0x00)
HT Information Subset (2 of 3): 0x0013
.... .... .... ..11 = Operating mode of BSS: HT mixed mode (0x0003)
.... .... .... .0.. = Non-greenfield STAs present: All associated STAs are greenfield capable
.... .... .... 0... = Transmit burst limit: No limit
.... .... ...1 .... = OBSS non-HT STAs present: Use of protection for non-HT STAs by overlapping BSSs is needed
0000 0000 000. .... = Reserved: 0x0000
HT Information Subset (3 of 3): 0x0000
.... .... ..00 0000 = Reserved: 0x0000
.... .... .0.. .... = Dual beacon: No second beacon is transmitted
.... .... 0... .... = Dual Clear To Send (CTS) protection: Not required
.... ...0 .... .... = Beacon ID: Primary beacon
.... ..0. .... .... = L-SIG TXOP Protection Full Support: One or more HT STAs in the BSS do not support L-SIG TXOP protection
.... .0.. .... .... = Phased Coexistence Operation (PCO): Inactive
.... 0... .... .... = Phased Coexistence Operation (PCO) Phase: Switch to or continue 20 MHz phase
0000 .... .... .... = Reserved: 0x0000
Rx Supported Modulation and Coding Scheme Set: Basic MCS Set
Tag interpretation: Rx Modulation and Coding Scheme (One bit per modulation)
.... .... .... .... .... .... 0000 0000 = Rx Bitmask Bits 0-7: 0x00000000
.... .... .... .... 0000 0000 .... .... = Rx Bitmask Bits 8-15: 0x00000000
.... .... 0000 0000 .... .... .... .... = Rx Bitmask Bits 16-23: 0x00000000
0000 0000 .... .... .... .... .... .... = Rx Bitmask Bits 24-31: 0x00000000
.... .... .... .... .... .... .... ...0 = Rx Bitmask Bit 32: 0x00000000
.... .... .... .... .... .... .000 000. = Rx Bitmask Bits 33-38: 0x00000000
.... .... ...0 0000 0000 0000 0... .... = Rx Bitmask Bits 39-52: 0x00000000
...0 0000 0000 0000 0000 0000 000. .... = Rx Bitmask Bits 53-76: 0x00000000
Highest Supported Data Rate: 0x0000
.... .... .... ...0 = Tx Supported MCS Set: Not Defined
.... .... .... ..0. = Tx and Rx MCS Set: Equal
.... .... .... 00.. = Tx Maximum Number of Spatial Streams Supported: 1 spatial stream (0x0000)
.... .... ...0 .... = Unequal Modulation: Not supported
Tag: Neighbor Report
Tag Number: Neighbor Report (52)
Tag length: 22
BSSID: 16:00:13:00:00:00 (16:00:13:00:00:00)
BSSID Information: 0x00000000
.... .... .... ..00 = AP Reachability: 0x0000
.... .... .... .0.. = Security: 0x0000
.... .... .... 0... = Key Scope: 0x0000
.... .... ...0 .... = Capability: Spectrum Management: 0x0000
.... .... ..0. .... = Capability: QoS: 0x0000
.... .... .0.. .... = Capability: APSD: 0x0000
.... .... 0... .... = Capability: Radio Measurement: 0x0000
.... ...0 .... .... = Capability: Delayed Block Ack: 0x0000
.... ..0. .... .... = Capability: Immediate Block Ack: 0x0000
.... .0.. .... .... = Mobility Domain: 0x0000
.... 0... .... .... = High Throughput: 0x0000
Reserved: 0x00000000
Regulatory Class: 0x00
Channel Number: 0x00
PHY Type: 0x00
Unknown Data
Tag: Overlapping BSS Scan Parameters: Tag 74 Len 14
Tag Number: Overlapping BSS Scan Parameters (74)
Tag length: 14
Tag interpretation: Not interpreted
Tag: Extended Capabilities
Tag Number: Extended Capabilities (127)
Tag length: 1
Extended Capabilities: 0x01 (octet 0)
.... ...1 = 20/40 BSS Coexistence Management Support: Supported
.... ..0. = On-demand beacon: Not supported
.... .0.. = Extended Channel Switching: Not supported
.... 0... = WAVE indication: Not supported
...0 .... = PSMP Capability: Not supported
.0.. .... = S-PSMP Support: Not supported
Tag: Vendor Specific: Microsof: WMM/WME: Parameter Element
Tag Number: Vendor Specific (221)
Tag length: 24
OUI: 00-50-f2 (Microsof)
Vendor Specific OUI Type: 2
Type: WMM/WME (0x02)
WME Subtype: Parameter Element (1)
WME Version: 1
WME QoS Info: 0x81
1... .... = U-APSD: Enabled
.... 0001 = Parameter Set Count: 0x01
.000 .... = Reserved: 0x00
Reserved: 00
Ac Parameters ACI 0 (Best Effort), ACM no , AIFSN 3, ECWmin 4 ,ECWmax 10, TXOP 0
ACI / AIFSN Field: 0x03
.00. .... = ACI: Best Effort (0)
...0 .... = Admission Control Mandatory: No
.... 0011 = AIFSN: 3
0... .... = Reserved: 0
ECW: 0xa4
1010 .... = ECW Max: 10
.... 0100 = ECW Min: 4
TXOP Limit: 0
Ac Parameters ACI 1 (Background), ACM no , AIFSN 7, ECWmin 4 ,ECWmax 10, TXOP 0
ACI / AIFSN Field: 0x27
.01. .... = ACI: Background (1)
...0 .... = Admission Control Mandatory: No
.... 0111 = AIFSN: 7
0... .... = Reserved: 0
ECW: 0xa4
1010 .... = ECW Max: 10
.... 0100 = ECW Min: 4
TXOP Limit: 0
Ac Parameters ACI 2 (Video), ACM no , AIFSN 2, ECWmin 3 ,ECWmax 4, TXOP 94
ACI / AIFSN Field: 0x42
.10. .... = ACI: Video (2)
...0 .... = Admission Control Mandatory: No
.... 0010 = AIFSN: 2
0... .... = Reserved: 0
ECW: 0x43
0100 .... = ECW Max: 4
.... 0011 = ECW Min: 3
TXOP Limit: 94
Ac Parameters ACI 3 (Voice), ACM no , AIFSN 2, ECWmin 2 ,ECWmax 6, TXOP 47
ACI / AIFSN Field: 0x62
.11. .... = ACI: Voice (3)
...0 .... = Admission Control Mandatory: No
.... 0010 = AIFSN: 2
0... .... = Reserved: 0
ECW: 0x62
0110 .... = ECW Max: 6
.... 0010 = ECW Min: 2
TXOP Limit: 47
Tag: Vendor Specific
Tag Number: Vendor Specific (221)
Tag length: 221
[Malformed Packet: IEEE 802.11]
[Expert Info (Error/Malformed): Malformed Packet (Exception occurred)]
[Message: Malformed Packet (Exception occurred)]
[Severity level: Error]
[Group: Malformed]
0000 00 00 12 00 2e 48 00 00 00 02 85 09 a0 00 d0 03 .....H..........
0010 00 00 80 00 00 00 ff ff ff ff ff ff xx xx xx xx ................
0020 xx xx xx xx xx xx xx xx e0 17 80 11 05 d3 14 03 ................
0030 00 00 64 00 31 01 00 0e xx xx xx xx xx xx xx xx ..d.1...........
0040 xx xx xx xx xx xx 01 08 82 84 8b 96 0c 12 18 24 ...............$
0050 03 01 06 05 04 00 01 00 00 07 06 41 55 20 01 0d ...........AU ..
0060 16 20 01 00 2a 01 02 30 18 18 00 00 0f ac 02 02 . ..*..0........
0070 00 00 0f ac 04 00 0f ac 02 02 00 00 0f ac 02 00 ................
0080 00 32 04 30 48 60 6c 2d 1a 8c 01 1b ff 7f 00 00 .2.0H`l-........
0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00a0 00 00 00 33 1a 8c 01 1b ff ff 00 00 00 00 00 00 ...3............
00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3d ...............=
00c0 16 06 00 13 00 00 00 00 00 00 00 00 00 00 00 00 ................
00d0 00 00 00 00 00 00 00 34 16 16 00 13 00 00 00 00 .......4........
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4a ...............J
00f0 0e 14 00 0a 00 2c 01 c8 00 00 00 05 00 19 00 7f .....,..........
0100 01 01 dd 18 00 50 f2 02 01 01 81 00 03 a4 00 00 .....P..........
0110 27 a4 00 00 42 43 5e 00 62 62 2f 00 dd dd 00 03 '...BC^.bb/.....
0120 7f 7f 01 00 00 00 00 .......
^ permalink raw reply
* pull request: bluetooth-next 2013-10-21
From: Gustavo Padovan @ 2013-10-21 22:37 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, linux-bluetooth, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 8588 bytes --]
Hi John,
One more big pull request for 3.13. These are the patches we queued during
last week. Here you will find a lot of improvements to the HCI and L2CAP and
MGMT layers with the main ones being a better debugfs support and end of work
of splitting L2CAP into Core and Socket parts.
Please pull!
Gustavo
---
The following changes since commit 4b836f393bd8ed111857a6ee1865e44627266ec6:
Bluetooth: Read current IAC LAP on controller setup (2013-10-14 19:31:18 -0300)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next for-upstream
for you to fetch changes up to d78a32a8fcf775111ccc9ba611a08ca5c29784b6:
Bluetooth: Remove sk member from struct l2cap_chan (2013-10-21 13:50:56 -0700)
----------------------------------------------------------------
Gustavo Padovan (14):
Bluetooth: Extend state_change() call to report errors too
Bluetooth: Add l2cap_state_change_and_error()
Bluetooth: Access sk_sndtimeo indirectly in l2cap_core.c
Bluetooth: Add chan->ops->set_shutdown()
Bluetooth: Move l2cap_wait_ack() to l2cap_sock.c
Bluetooth: use l2cap_chan_ready() instead of duplicate code
Bluetooth: Remove not used struct sock
Bluetooth: Do not access chan->sk directly
Bluetooth: Hold socket in defer callback in L2CAP socket
Bluetooth: Remove socket lock from l2cap_state_change()
Bluetooth: Remove parent socket usage from l2cap_core.c
Bluetooth: Add L2CAP channel to skb private data
Bluetooth: Use bt_cb(skb)->chan to send raw data back
Bluetooth: Remove sk member from struct l2cap_chan
Johan Hedberg (20):
Bluetooth: Fix L2CAP "Command Reject: Invalid CID" response
Bluetooth: Remove unused command reject mapping for EMSGSIZE
Bluetooth: Remove useless l2cap_err_to_reason function
Bluetooth: Ignore A2MP data on non-BR/EDR links
Bluetooth: Ignore SMP data on non-LE links
Bluetooth: Fix updating the right variable in update_scan_rsp_data()
Bluetooth: Reintroduce socket restrictions for LE sockets
Bluetooth: Convert auto accept timer to use delayed work
Bluetooth: Convert idle timer to use delayed work
Bluetooth: Fix ATT socket backwards compatibility with user space
Bluetooth: Check for flag instead of features in update_scan_rsp_data()
Bluetooth: Check for flag instead of features in update_adv_data()
Bluetooth: Add missing check for BREDR_ENABLED flag in update_class()
Bluetooth: Refactor set_connectable settings update to separate function
Bluetooth: Fix updating settings when there are no HCI commands to send
Bluetooth: Move mgmt_pending_find to avoid forward declarations
Bluetooth: Fix sending write_scan_enable when BR/EDR is disabled
Bluetooth: Move HCI_LIMITED_DISCOVERABLE changes to a general place
Bluetooth: Update Set Discoverable to support LE
Bluetooth: Fix enabling fast connectable on LE-only controllers
Marcel Holtmann (71):
Bluetooth: Fix minor coding style issue in set_connectable()
Bluetooth: Use hci_request for discoverable timeout handling
Bluetooth: Update advertising data based on management commands
Bluetooth: Introduce flag for limited discoverable mode
Bluetooth: Make mgmt_discoverable() return void
Bluetooth: Make mgmt_connectable() return void
Bluetooth: Make mgmt_write_scan_failed() return void
Bluetooth: Update class of device after changing discoverable mode
Bluetooth: Move arming of discoverable timeout to complete handler
Bluetooth: Simplify the code for re-arming discoverable timeout
Bluetooth: Add HCI command structure for writing current IAC LAP
Bluetooth: Add support for entering limited discoverable mode
Bluetooth: Make mgmt_new_link_key() return void
Bluetooth: Move eir_append_data() function into mgmt.c
Bluetooth: Move eir_get_length() function into hci_event.c
Bluetooth: Update class of device on discoverable timeout
Bluetooth: Add l2cap_chan_no_resume stub for A2MP
Bluetooth: Make mgmt_pin_code_request() return void
Bluetooth: Make mgmt_pin_code_reply_complete() return void
Bluetooth: Make mgmt_pin_code_neg_reply_complete() return void
Bluetooth: Make mgmt_auth_failed() return void
Bluetooth: Make mgmt_auth_enable_complete() return void
Bluetooth: Make mgmt_ssp_enable_complete() return void
Bluetooth: Make mgmt_set_class_of_dev_complete() return void
Bluetooth: Make mgmt_set_local_name_complete() return void
Bluetooth: Make mgmt_read_local_oob_data_reply_complete() return void
Bluetooth: Make mgmt_new_ltk() return void
Bluetooth: Rename create_ad into create_adv_data
Bluetooth: Store scan response data in HCI device
Bluetooth: Set the scan response data when needed
Bluetooth: Store device name in scan response data
Bluetooth: Rename update_ad into update_adv_data
Bluetooth: Remove duplicate definitions for advertising event types
Bluetooth: Remove enable_hs declaration
Bluetooth: Socket address parameter for CID is in little endian
Bluetooth: Expose inquiry_cache debugfs only on BR/EDR controllers
Bluetooth: Expose auto_accept_delay debugfs only when SSP is supported
Bluetooth: Expose static address value for LE capable controllers
Bluetooth: Expose current voice setting in debugfs
Bluetooth: Add address type to device blacklist table
Bluetooth: Move blacklist debugfs entry creation into hci_core.c
Bluetooth: Move uuids debugfs entry creation into hci_core.c
Bluetooth: Use IS_ERR_OR_NULL for checking bt_debugfs
Bluetooth: Create HCI device debugfs directory in hci_register_dev
Bluetooth: Create root debugfs directory during module init
Bluetooth: Move device_add handling into hci_register_dev
Bluetooth: Include address type in blacklist debugfs data
Bluetooth: Move idle_timeout and sniff_{min,max}_interval to hci_core.c
Bluetooth: Use BDADDR_BREDR type for old blacklist ioctl interface
Bluetooth: Use hcon directly instead of conn->hcon where possible
Bluetooth: Block ATT connection on LE when device is blocked
Bluetooth: Move HCI device features into hci_core.c
Bluetooth: Add workaround for buggy max_page features page value
Bluetooth: Remove debug entry for connection features
Bluetooth: Move manufacturer, hci_ver and hci_rev into hci_core.c
Bluetooth: Store local version information only during setup phase
Bluetooth: Move export of class of device information into hci_core.c
Bluetooth: Expose current list of link keys via debugfs
Bluetooth: Remove bus attribute in favor of hierarchy
Bluetooth: Expose white list size information in debugfs
Bluetooth: Expose current list of long term keys via debugfs
Bluetooth: Select the own address type during initial setup phase
Bluetooth: Expose debugfs entry read/write own address type
Bluetooth: Expose setting if debug keys are used or not
Bluetooth: Add LE features to debugfs if available
Bluetooth: Remove interval parameter from HCI connection
Bluetooth: Add support for setting SSP debug mode
Bluetooth: Expose debugfs settings for LE connection interval
Bluetooth: Add support for setting DUT mode
Bluetooth: Fix UUID values in debugfs file
Bluetooth: Fix minor coding style issue in hci_core.c
include/net/bluetooth/bluetooth.h | 1 +
include/net/bluetooth/hci.h | 35 ++-
include/net/bluetooth/hci_core.h | 89 +++----
include/net/bluetooth/l2cap.h | 20 +-
net/bluetooth/a2mp.c | 9 +-
net/bluetooth/af_bluetooth.c | 9 +-
net/bluetooth/hci_conn.c | 48 ++--
net/bluetooth/hci_core.c | 803 +++++++++++++++++++++++++++++++++++++++++++++++++--------
net/bluetooth/hci_event.c | 59 +++--
net/bluetooth/hci_sock.c | 4 +-
net/bluetooth/hci_sysfs.c | 373 ---------------------------
net/bluetooth/l2cap_core.c | 227 ++++++----------
net/bluetooth/l2cap_sock.c | 120 ++++++++-
net/bluetooth/mgmt.c | 637 ++++++++++++++++++++++++++++++++-------------
net/bluetooth/rfcomm/core.c | 14 +-
net/bluetooth/rfcomm/sock.c | 14 +-
net/bluetooth/sco.c | 13 +-
net/bluetooth/smp.c | 4 +-
18 files changed, 1506 insertions(+), 973 deletions(-)
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Splat in 3.12.0-rc5 (ath tree)
From: Ben Greear @ 2013-10-22 0:06 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org
I'm not sure how important this is...but here it be.
------------[ cut here ]------------
WARNING: CPU: 2 PID: 1523 at /mnt/sda/home/greearb/git/ath/net/wireless/util.c:1066 cfg80211_calculate_bitr)
Modules linked in: nf_nat_ipv4 nf_nat veth 8021q garp stp mrp llc macvlan pktgen lockd f71882fg coretemp hw]
CPU: 0 PID: 1523 Comm: btserver Tainted: G C 3.12.0-rc5-wl+ #1
Hardware name: To be filled by O.E.M. To be filled by O.E.M./HURONRIVER, BIOS 4.6.5 05/02/2012
0000000000000009 ffff8800d9ea1b48 ffffffff81566b46 ffff88021fa0ec78
0000000000000000 ffff8800d9ea1b88 ffffffff8109e0a2 ffff8802156367c0
ffffffffa0213471 ffff8800cf479e40 ffff880215636000 ffff8802155785c0
Call Trace:
[<ffffffff81566b46>] dump_stack+0x55/0x86
[<ffffffff8109e0a2>] warn_slowpath_common+0x77/0x91
[<ffffffffa0213471>] ? cfg80211_calculate_bitrate+0xfa/0x18e [cfg80211]
[<ffffffff8109e0d1>] warn_slowpath_null+0x15/0x17
[<ffffffffa0213471>] cfg80211_calculate_bitrate+0xfa/0x18e [cfg80211]
[<ffffffffa03a8e87>] ieee80211_get_et_stats+0xa7/0x44e [mac80211]
[<ffffffff812170d3>] ? find_revoke_record+0x82/0x8e
[<ffffffff812175e8>] ? jbd2_journal_cancel_revoke+0x118/0x160
[<ffffffffa022bb14>] cfg80211_get_stats+0x44/0x4c [cfg80211]
[<ffffffff814c3382>] dev_ethtool+0xbb1/0x1463
[<ffffffff814bb91c>] ? dev_name_hash.isra.66+0x24/0x3a
[<ffffffff814bba30>] ? dev_get_by_name_rcu+0x34/0x56
[<ffffffff814cef6c>] dev_ioctl+0x487/0x5a3
[<ffffffff814aa442>] sock_do_ioctl+0x36/0x41
[<ffffffff814aa859>] sock_ioctl+0x1fe/0x20b
[<ffffffff8117481d>] vfs_ioctl+0x21/0x34
[<ffffffff81175076>] do_vfs_ioctl+0x3b8/0x3fb
[<ffffffff810bee73>] ? should_resched+0x9/0x28
[<ffffffff8156b960>] ? _cond_resched+0x9/0x1d
[<ffffffff8117cb0b>] ? fget_light+0x39/0x99
[<ffffffff8117510b>] SyS_ioctl+0x52/0x7f
[<ffffffff810e070e>] ? current_kernel_time+0xd/0x31
[<ffffffff815716bd>] system_call_fastpath+0x1a/0x1f
---[ end trace b61c38f55596de59 ]---
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* RTL8187B is racy
From: Alexandre Oliva @ 2013-10-22 4:07 UTC (permalink / raw)
To: linux-wireless
It's been at least a year since I first noticed that, on WiFi-busy
environments such as airports, hotels and Free Software conferences, my
Yeeloong laptop with a RTL8187B WiFi card will freeze or oops shortly
after I enable WiFi. This problem doesn't seem to happen when I'm at
home, probably because of the low WiFi traffic. The problem occurs
while running 3.11.* and 3.10.* kernels, but not 3.4.* or 3.0.*.
I couldn't find any changes to the rtl8187 module that explain this
misbehavior, so I suspect it's some new source of parallelism in the
mac80211 layer that has exposed the lack of synchronization in uses of
rx_queue and b_tx_status.queue. Indeed, I found many uses of these
queues that don't take locks to ensure consistency. Unfortunately,
adding spin locks around all uses causes harder freezes and/or complains
about scheduling in atomic contexts, depending on which race I hit
first. Without any changes, the problem I get most often is a crash
within rtl8187b_status_cb, when skb_unlink attempts to dereference a
NULL pointer. Testing skb->prev and skb->next before entering the
branch where the skb is removed seemed to make the error a little bit
less frequent, but surely not enough for the machine to remain up for
very long while WiFi is enabled.
Is this a known problem? Any suggestions on what I could try next to
fix the problem?
Thanks in advance,
--
Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer
^ permalink raw reply
* RE: Intel® Centrino® Advanced-N 6235 - iwlwifi-6000g2b-6.ucode not reconnecting issue
From: Bastiaan de Groot @ 2013-10-22 8:31 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org, ilw@linux.intel.com
Dear community,
I have a "Intel® Centrino® Advanced-N 6235" wificard.
Running Debian 7.0 "wheezy"
Firmware: Iwlwifi-6000g2b-6.ucode
Using:
Kernel 3.2.0-4-686-pae
It connects but when wpa_supplicant is trying to re-connect I get:
[83667.904059] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 157 is out of range [0-256] 0 0.
[83667.904276] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command POWER_TABLE_CMD
[83667.904289] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 156 is out of range [0-256] 0 0.
[83667.904493] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_RXON_ASSOC
[83667.904516] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 143 is out of range [0-256] 0 0.
[83667.904722] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_RXON
[83667.904732] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 139 is out of range [0-256] 0 0.
[83667.904935] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_TX_LINK_QUALITY_CMD
[83667.904998] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 172 is out of range [0-256] 0 0.
[83667.905200] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_LEDS_CMD
[83667.905212] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 165 is out of range [0-256] 0 0.
[83667.908013] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command POWER_TABLE_CMD
[83667.920999] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 162 is out of range [0-256] 0 0.
[83667.924978] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_TX_LINK_QUALITY_CMD
[83667.937183] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 158 is out of range [0-256] 0 0.
[83667.941157] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_RXON
[83667.953377] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 171 is out of range [0-256] 0 0.
[83667.957319] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_TX_LINK_QUALITY_CMD
[83668.896034] iwlwifi 0000:05:00.0: Failed to start RT ucode: -110
[83668.904290] iwlwifi 0000:05:00.0: Unable to initialize device.
The issue looks similar like this one:
http://ubuntuforums.org/showthread.php?t=2178006&s=9157c353cd4a322c2a3b2a6dc693d243
Can you please give me advice on how to resolve this issue?
Thanks in advance!
Bastiaan
Met vriendelijke groet,
Bastiaan de Groot
Laan van Zuid Hoorn 55
2289 DC Rijswijk
The Netherlands
Telephone +31 (0)70 319 39 38
Operations +31 (0)70 319 23 47
Fax +31 (0)70 319 17 59
Mobile +31 (0)6 211 92 911
E-mail bastiaan.de.groot@telexis.nl
Website www.telexis.nl
^ permalink raw reply
* Re: Intel(R) Centrino(R) Advanced-N 6235 - iwlwifi-6000g2b-6.ucode not reconnecting issue
From: Emmanuel Grumbach @ 2013-10-22 10:51 UTC (permalink / raw)
To: Bastiaan de Groot; +Cc: linux-wireless@vger.kernel.org, ilw@linux.intel.com
On Tue, Oct 22, 2013 at 11:31 AM, Bastiaan de Groot
<bastiaan.de.groot@telexis.nl> wrote:
> Dear community,
>
> I have a "Intel® Centrino® Advanced-N 6235" wificard.
> Running Debian 7.0 "wheezy"
>
> Firmware: Iwlwifi-6000g2b-6.ucode
>
> Using:
> Kernel 3.2.0-4-686-pae
>
> It connects but when wpa_supplicant is trying to re-connect I get:
>
> [83667.904059] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 157 is out of range [0-256] 0 0.
Did you have anything before that?
^ permalink raw reply
* [PATCH] mac80211_hwsim: Fix tracking of beaconing for multi-vif
From: Jouni Malinen @ 2013-10-22 11:11 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-wireless
mac80211_hwsim canceled beacon_timer on any vif changing from enabled
to disabled beaconing. This breaks cases where there are multiple
beaconing vifs and only one of them is removed. Fix this by tracking
beaconing status per vif and disable beacon_timer only if no active vif
remain with beaconing enabled.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
---
drivers/net/wireless/mac80211_hwsim.c | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 2cd3f54..de0df86 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -167,6 +167,7 @@ struct hwsim_vif_priv {
u32 magic;
u8 bssid[ETH_ALEN];
bool assoc;
+ bool bcn_en;
u16 aid;
};
@@ -1170,6 +1171,16 @@ static void mac80211_hwsim_configure_filter(struct ieee80211_hw *hw,
*total_flags = data->rx_filter;
}
+static void mac80211_hwsim_bcn_en_iter(void *data, u8 *mac,
+ struct ieee80211_vif *vif)
+{
+ unsigned int *count = data;
+ struct hwsim_vif_priv *vp = (void *)vif->drv_priv;
+
+ if (vp->bcn_en)
+ (*count)++;
+}
+
static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
@@ -1180,7 +1191,8 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,
hwsim_check_magic(vif);
- wiphy_debug(hw->wiphy, "%s(changed=0x%x)\n", __func__, changed);
+ wiphy_debug(hw->wiphy, "%s(changed=0x%x vif->addr=%pM)\n",
+ __func__, changed, vif->addr);
if (changed & BSS_CHANGED_BSSID) {
wiphy_debug(hw->wiphy, "%s: BSSID changed: %pM\n",
@@ -1202,6 +1214,7 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,
if (changed & BSS_CHANGED_BEACON_ENABLED) {
wiphy_debug(hw->wiphy, " BCN EN: %d\n", info->enable_beacon);
+ vp->bcn_en = info->enable_beacon;
if (data->started &&
!hrtimer_is_queued(&data->beacon_timer.timer) &&
info->enable_beacon) {
@@ -1215,8 +1228,16 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,
tasklet_hrtimer_start(&data->beacon_timer,
ns_to_ktime(until_tbtt * 1000),
HRTIMER_MODE_REL);
- } else if (!info->enable_beacon)
- tasklet_hrtimer_cancel(&data->beacon_timer);
+ } else if (!info->enable_beacon) {
+ unsigned int count = 0;
+ ieee80211_iterate_active_interfaces(
+ data->hw, IEEE80211_IFACE_ITER_NORMAL,
+ mac80211_hwsim_bcn_en_iter, &count);
+ wiphy_debug(hw->wiphy, " beaconing vifs remaining: %u",
+ count);
+ if (count == 0)
+ tasklet_hrtimer_cancel(&data->beacon_timer);
+ }
}
if (changed & BSS_CHANGED_ERP_CTS_PROT) {
--
1.7.9.5
--
Jouni Malinen PGP id EFC895FA
^ permalink raw reply related
* RE: Intel(R) Centrino(R) Advanced-N 6235 - iwlwifi-6000g2b-6.ucode not reconnecting issue
From: Bastiaan de Groot @ 2013-10-22 11:17 UTC (permalink / raw)
To: Emmanuel Grumbach; +Cc: linux-wireless@vger.kernel.org, ilw@linux.intel.com
In-Reply-To: <CANUX_P0yTq2v5jWyeHob_QnES878Zw-aZDhWFSmBcxg=CYMHgA@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 787 bytes --]
Attached you find the "demsg |grep -i iwl" full output.
It gives a:
83668.896034] iwlwifi 0000:05:00.0: Failed to start RT ucode: -110
[83668.904290] iwlwifi 0000:05:00.0: Unable to initialize device.
And then stops trying for a while.
On Tue, Oct 22, 2013 at 11:31 AM, Bastiaan de Groot <bastiaan.de.groot@telexis.nl> wrote:
> Dear community,
>
> I have a "Intel(r) Centrino(r) Advanced-N 6235" wificard.
> Running Debian 7.0 "wheezy"
>
> Firmware: Iwlwifi-6000g2b-6.ucode
>
> Using:
> Kernel 3.2.0-4-686-pae
>
> It connects but when wpa_supplicant is trying to re-connect I get:
>
> [83667.904059] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 157 is out of range [0-256] 0 0.
Did you have anything before that?
[-- Attachment #2: iwl_error.txt --]
[-- Type: text/plain, Size: 13156 bytes --]
[ 4.671506] iwlwifi 0000:05:00.0: setting latency timer to 64
[ 4.671548] iwlwifi 0000:05:00.0: pci_resource_len = 0x00002000
[ 4.671555] iwlwifi 0000:05:00.0: pci_resource_base = f8330000
[ 4.671562] iwlwifi 0000:05:00.0: HW Revision ID = 0x24
[ 4.671661] iwlwifi 0000:05:00.0: irq 55 for MSI/MSI-X
[ 4.671755] iwlwifi 0000:05:00.0: Detected 6035 Series 2x2 AGN/BT, REV=0xB0
[ 4.671851] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[ 4.686706] iwlwifi 0000:05:00.0: device EEPROM VER=0x756, CALIB=0x6
[ 4.686714] iwlwifi 0000:05:00.0: Device SKU: 0X1f0
[ 4.686722] iwlwifi 0000:05:00.0: Valid Tx ant: 0X3, Valid Rx ant: 0X3
[ 4.692133] iwlwifi 0000:05:00.0: Tunable channels: 13 802.11bg, 24 802.11a channels
[ 4.865663] iwlwifi 0000:05:00.0: firmware: agent loaded iwlwifi-6000g2b-6.ucode into memory
[ 4.865680] iwlwifi 0000:05:00.0: loaded firmware version 18.168.6.1
[ 4.874362] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[ 7.751226] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[ 7.758248] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[ 8.046021] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[ 8.053041] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[ 2251.842216] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[ 2251.849304] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[17702.289593] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[17702.296662] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[30257.442028] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[30257.449098] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[43218.459480] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[43218.466554] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[47486.831629] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[47486.838711] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[48035.823057] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[48035.830129] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[52537.796883] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[52537.803965] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[62140.806165] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[62140.813245] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[69403.774804] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[69403.781872] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[70844.856679] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[70844.863749] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[73468.448984] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[73468.456060] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[74805.753484] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[74805.760571] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[83667.860874] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 172 is out of range [0-256] 173 173.
[83667.882081] iwlwifi 0000:05:00.0: L1 Disabled; Enabling L0S
[83667.889149] iwlwifi 0000:05:00.0: Radio type=0x2-0x1-0x0
[83667.898065] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 150 is out of range [0-256] 0 0.
[83667.898278] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_RXON
[83667.898287] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 167 is out of range [0-256] 0 0.
[83667.898490] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_SCAN_CMD
[83667.898500] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 160 is out of range [0-256] 0 0.
[83667.898702] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_TX_LINK_QUALITY_CMD
[83667.898746] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 154 is out of range [0-256] 0 0.
[83667.898948] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command SENSITIVITY_CMD
[83667.898966] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 148 is out of range [0-256] 0 0.
[83667.899174] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_RXON_TIMING
[83667.899193] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 140 is out of range [0-256] 0 0.
[83667.899395] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_LEDS_CMD
[83667.899403] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 142 is out of range [0-256] 0 0.
[83667.899605] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_QOS_PARAM
[83667.899616] iwlwifi 0000:05:00.0: iwl_tx_queue_reclaim: Read index for DMA queue txq id (0), last_to_free 179 is out of range [0-256] 0 0.
[83667.899849] WARNING: at /build/linux-n2St39/linux-3.2.51/drivers/net/wireless/iwlwifi/iwl-agn-tx.c:835 iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]()
[83667.899859] Modules linked in: cryptd aes_i586 aes_generic nfsd nfs nfs_acl auth_rpcgss fscache lockd sunrpc loop arc4 i2c_i801 coretemp psmouse serio_raw pcspkr iwlwifi snd_hda_codec_realtek btusb mac80211 iTCO_wdt bluetooth iTCO_vendor_support evdev i915 cfg80211 option usb_wwan usbserial rfkill snd_hda_intel video snd_hda_codec drm_kms_helper snd_hwdep drm snd_pcm snd_page_alloc snd_timer snd i2c_algo_bit soundcore i2c_core processor button thermal_sys ext4 crc16 jbd2 mbcache sg sd_mod crc_t10dif usbhid hid ata_generic ata_piix libata scsi_mod uhci_hcd e1000e ehci_hcd usbcore usb_common [last unloaded: scsi_wait_scan]
[83667.899996] [<f86370ce>] ? iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]
[83667.900026] [<f86370ce>] ? iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]
[83667.900046] [<f863bb25>] ? iwlagn_rx_reply_rx+0x135/0x353 [iwlwifi]
[83667.900064] [<f863bf73>] ? iwl_rx_dispatch+0xbb/0xc4 [iwlwifi]
[83667.900082] [<f86446eb>] ? iwl_irq_tasklet+0x3b7/0x627 [iwlwifi]
[83667.900219] iwlwifi 0000:05:00.0: iwl_tx_queue_reclaim: Read index for DMA queue txq id (0), last_to_free 180 is out of range [0-256] 0 0.
[83667.900462] WARNING: at /build/linux-n2St39/linux-3.2.51/drivers/net/wireless/iwlwifi/iwl-agn-tx.c:835 iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]()
[83667.900489] Modules linked in: cryptd aes_i586 aes_generic nfsd nfs nfs_acl auth_rpcgss fscache lockd sunrpc loop arc4 i2c_i801 coretemp psmouse serio_raw pcspkr iwlwifi snd_hda_codec_realtek btusb mac80211 iTCO_wdt bluetooth iTCO_vendor_support evdev i915 cfg80211 option usb_wwan usbserial rfkill snd_hda_intel video snd_hda_codec drm_kms_helper snd_hwdep drm snd_pcm snd_page_alloc snd_timer snd i2c_algo_bit soundcore i2c_core processor button thermal_sys ext4 crc16 jbd2 mbcache sg sd_mod crc_t10dif usbhid hid ata_generic ata_piix libata scsi_mod uhci_hcd e1000e ehci_hcd usbcore usb_common [last unloaded: scsi_wait_scan]
[83667.900773] [<f86370ce>] ? iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]
[83667.900812] [<f86370ce>] ? iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]
[83667.900835] [<f863bb25>] ? iwlagn_rx_reply_rx+0x135/0x353 [iwlwifi]
[83667.900853] [<f863bf73>] ? iwl_rx_dispatch+0xbb/0xc4 [iwlwifi]
[83667.900871] [<f86446eb>] ? iwl_irq_tasklet+0x3b7/0x627 [iwlwifi]
[83667.900998] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 166 is out of range [0-256] 0 0.
[83667.901204] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command POWER_TABLE_CMD
[83667.901257] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 155 is out of range [0-256] 0 0.
[83667.901464] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_TX_POWER_DBM_CMD
[83667.901560] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 147 is out of range [0-256] 0 0.
[83667.901774] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_TX_LINK_QUALITY_CMD
[83667.901807] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 169 is out of range [0-256] 0 0.
[83667.902012] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_RXON
[83667.902037] iwlwifi 0000:05:00.0: iwl_tx_queue_reclaim: Read index for DMA queue txq id (0), last_to_free 178 is out of range [0-256] 0 0.
[83667.902272] WARNING: at /build/linux-n2St39/linux-3.2.51/drivers/net/wireless/iwlwifi/iwl-agn-tx.c:835 iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]()
[83667.902300] Modules linked in: cryptd aes_i586 aes_generic nfsd nfs nfs_acl auth_rpcgss fscache lockd sunrpc loop arc4 i2c_i801 coretemp psmouse serio_raw pcspkr iwlwifi snd_hda_codec_realtek btusb mac80211 iTCO_wdt bluetooth iTCO_vendor_support evdev i915 cfg80211 option usb_wwan usbserial rfkill snd_hda_intel video snd_hda_codec drm_kms_helper snd_hwdep drm snd_pcm snd_page_alloc snd_timer snd i2c_algo_bit soundcore i2c_core processor button thermal_sys ext4 crc16 jbd2 mbcache sg sd_mod crc_t10dif usbhid hid ata_generic ata_piix libata scsi_mod uhci_hcd e1000e ehci_hcd usbcore usb_common [last unloaded: scsi_wait_scan]
[83667.902590] [<f86370ce>] ? iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]
[83667.902628] [<f86370ce>] ? iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]
[83667.902653] [<f863bb25>] ? iwlagn_rx_reply_rx+0x135/0x353 [iwlwifi]
[83667.902679] [<f863bf73>] ? iwl_rx_dispatch+0xbb/0xc4 [iwlwifi]
[83667.902721] [<f86446eb>] ? iwl_irq_tasklet+0x3b7/0x627 [iwlwifi]
[83667.902960] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 149 is out of range [0-256] 0 0.
[83667.903181] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_QOS_PARAM
[83667.903209] iwlwifi 0000:05:00.0: iwl_tx_queue_reclaim: Read index for DMA queue txq id (0), last_to_free 181 is out of range [0-256] 0 0.
[83667.903437] WARNING: at /build/linux-n2St39/linux-3.2.51/drivers/net/wireless/iwlwifi/iwl-agn-tx.c:835 iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]()
[83667.903447] Modules linked in: cryptd aes_i586 aes_generic nfsd nfs nfs_acl auth_rpcgss fscache lockd sunrpc loop arc4 i2c_i801 coretemp psmouse serio_raw pcspkr iwlwifi snd_hda_codec_realtek btusb mac80211 iTCO_wdt bluetooth iTCO_vendor_support evdev i915 cfg80211 option usb_wwan usbserial rfkill snd_hda_intel video snd_hda_codec drm_kms_helper snd_hwdep drm snd_pcm snd_page_alloc snd_timer snd i2c_algo_bit soundcore i2c_core processor button thermal_sys ext4 crc16 jbd2 mbcache sg sd_mod crc_t10dif usbhid hid ata_generic ata_piix libata scsi_mod uhci_hcd e1000e ehci_hcd usbcore usb_common [last unloaded: scsi_wait_scan]
[83667.903668] [<f86370ce>] ? iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]
[83667.903707] [<f86370ce>] ? iwlagn_rx_reply_tx+0x558/0x5b7 [iwlwifi]
[83667.903732] [<f863bb25>] ? iwlagn_rx_reply_rx+0x135/0x353 [iwlwifi]
[83667.903758] [<f863bf73>] ? iwl_rx_dispatch+0xbb/0xc4 [iwlwifi]
[83667.903783] [<f86446eb>] ? iwl_irq_tasklet+0x3b7/0x627 [iwlwifi]
[83667.904059] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 157 is out of range [0-256] 0 0.
[83667.904276] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command POWER_TABLE_CMD
[83667.904289] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 156 is out of range [0-256] 0 0.
[83667.904493] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_RXON_ASSOC
[83667.904516] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 143 is out of range [0-256] 0 0.
[83667.904722] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_RXON
[83667.904732] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 139 is out of range [0-256] 0 0.
[83667.904935] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_TX_LINK_QUALITY_CMD
[83667.904998] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 172 is out of range [0-256] 0 0.
[83667.905200] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_LEDS_CMD
[83667.905212] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 165 is out of range [0-256] 0 0.
[83667.908013] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command POWER_TABLE_CMD
[83667.920999] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 162 is out of range [0-256] 0 0.
[83667.924978] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_TX_LINK_QUALITY_CMD
[83667.937183] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 158 is out of range [0-256] 0 0.
[83667.941157] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_RXON
[83667.953377] iwlwifi 0000:05:00.0: iwl_hcmd_queue_reclaim: Read index for DMA queue txq id (9), index 171 is out of range [0-256] 0 0.
[83667.957319] iwlwifi 0000:05:00.0: HCMD_ACTIVE already clear for command REPLY_TX_LINK_QUALITY_CMD
[83668.896034] iwlwifi 0000:05:00.0: Failed to start RT ucode: -110
[83668.904290] iwlwifi 0000:05:00.0: Unable to initialize device.
^ permalink raw reply
* Re: RTL8187B is racy
From: Larry Finger @ 2013-10-22 15:32 UTC (permalink / raw)
To: Alexandre Oliva, linux-wireless
In-Reply-To: <or61sq3q4e.fsf@livre.home>
On 10/21/2013 11:07 PM, Alexandre Oliva wrote:
> It's been at least a year since I first noticed that, on WiFi-busy
> environments such as airports, hotels and Free Software conferences, my
> Yeeloong laptop with a RTL8187B WiFi card will freeze or oops shortly
> after I enable WiFi. This problem doesn't seem to happen when I'm at
> home, probably because of the low WiFi traffic. The problem occurs
> while running 3.11.* and 3.10.* kernels, but not 3.4.* or 3.0.*.
>
> I couldn't find any changes to the rtl8187 module that explain this
> misbehavior, so I suspect it's some new source of parallelism in the
> mac80211 layer that has exposed the lack of synchronization in uses of
> rx_queue and b_tx_status.queue. Indeed, I found many uses of these
> queues that don't take locks to ensure consistency. Unfortunately,
> adding spin locks around all uses causes harder freezes and/or complains
> about scheduling in atomic contexts, depending on which race I hit
> first. Without any changes, the problem I get most often is a crash
> within rtl8187b_status_cb, when skb_unlink attempts to dereference a
> NULL pointer. Testing skb->prev and skb->next before entering the
> branch where the skb is removed seemed to make the error a little bit
> less frequent, but surely not enough for the machine to remain up for
> very long while WiFi is enabled.
>
> Is this a known problem? Any suggestions on what I could try next to
> fix the problem?
No, the problem has not previously been reported. From your description of the
situation where it happens, the problem requires a lot of same channel, same AP
traffic. I will try to duplicate that condition here. Although I have an
RTL8187B device, I seldom use it as the case on the USB stick is falling apart.
I will need to do some repair on it so that it holds together.
After inspecting the code in rtl8187b_status_cb, I did notice that it does a lot
of things that should be done by mac80211. As you have been testing code
modifications, I assume that you will be able to test any patches that I generate.
Larry
^ permalink raw reply
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