Linux wireless drivers development
 help / color / mirror / Atom feed
* Re: [PATCHv2] mac80211: Allow single vif mac address change with addr_mask
From: Johannes Berg @ 2013-05-27  8:55 UTC (permalink / raw)
  To: Helmut Schaa
  Cc: linux-wireless, Jakub Kicinski, Alessandro Lannocca,
	Bruno Randolf
In-Reply-To: <1369644189-13874-1-git-send-email-helmut.schaa@googlemail.com>

On Mon, 2013-05-27 at 10:43 +0200, Helmut Schaa wrote:
> When changing the MAC address of a single vif mac80211 will check if
> the new address fits into the address mask specified by the driver.
> This only needs to be done when using multiple BSSIDs. Hence, check
> the new address only against all other vifs.
> 
> Also fix the MAC address assignment on new interfaces if the user
> changed the address of a vif such that perm_addr is not covered by
> addr_mask anymore.
> 
> Resolves:
> https://bugzilla.kernel.org/show_bug.cgi?id=57371

Applied for 3.10, thanks.

johannes


^ permalink raw reply

* Re: [PATCH 2/3] mac80211: support active monitor interfaces
From: Johannes Berg @ 2013-05-27  8:50 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless
In-Reply-To: <1369577107-87931-2-git-send-email-nbd@openwrt.org>

On Sun, 2013-05-26 at 16:05 +0200, Felix Fietkau wrote:

>  	if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_AP_VLAN ||
>  		    (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
> -		     !(local->hw.flags & IEEE80211_HW_WANT_MONITOR_VIF))))
> +		     !(local->hw.flags & IEEE80211_HW_WANT_MONITOR_VIF) &&
> +			 !(sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE))))
>  		return -EINVAL;

bad indentation

> +++ b/net/mac80211/iface.c
> @@ -209,9 +209,11 @@ static int ieee80211_change_mac(struct net_device *dev, void *addr)
>  	if (ieee80211_sdata_running(sdata))
>  		return -EBUSY;
>  
> -	ret = ieee80211_verify_mac(sdata->local, sa->sa_data);
> -	if (ret)
> -		return ret;
> +	if (sdata->vif.type != NL80211_IFTYPE_MONITOR) {
> +		ret = ieee80211_verify_mac(sdata->local, sa->sa_data);
> +		if (ret)
> +			return ret;
> +	}

I'm not convinced this makes sense, why would you want to have a monitor
with an invalid address? I'd rather not allow that, having e.g. a
multicast address that is ACK'ing frames would be very very strange.
 
> @@ -479,9 +481,13 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
>  	case NL80211_IFTYPE_AP:
>  		sdata->bss = &sdata->u.ap;
>  		break;
> +	case NL80211_IFTYPE_MONITOR:
> +		if ((sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE) &&
> +		    !(local->hw.flags & IEEE80211_HW_SUPPORTS_ACTIVE_MONITOR))
> +			return -EOPNOTSUPP;

How can you even get here? Shouldn't you just disallow setting the flag
unless it's supported?

> -		if (local->monitors == 0 && local->open_count == 0) {
> +		if (sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE) {
> +			res = drv_add_interface(local, sdata);
> +			if (res)
> +				goto err_stop;
> +
> +			local->active_mntrs++;

Did I miss something, or don't you use the counter?

johannes


^ permalink raw reply

* Re: [PATCH 2/3] mac80211: support active monitor interfaces
From: Johannes Berg @ 2013-05-27  8:42 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless
In-Reply-To: <1369577107-87931-2-git-send-email-nbd@openwrt.org>

On Sun, 2013-05-26 at 16:05 +0200, Felix Fietkau wrote:
> Support them only if the driver advertises support for them via
> IEEE80211_HW_SUPPORTS_ACTIVE_MONITOR. Unlike normal monitor interfaces,
> they are added to the driver, along with their MAC address.
> 
> Signed-off-by: Felix Fietkau <nbd@openwrt.org>
> ---
>  include/net/mac80211.h     |  5 +++++
>  net/mac80211/cfg.c         | 11 +++++++----
>  net/mac80211/driver-ops.h  |  3 ++-
>  net/mac80211/ieee80211_i.h |  2 +-
>  net/mac80211/iface.c       | 33 ++++++++++++++++++++++++++-------
>  net/mac80211/util.c        |  6 ++++++
>  6 files changed, 47 insertions(+), 13 deletions(-)
> 
> diff --git a/include/net/mac80211.h b/include/net/mac80211.h
> index 885898a..b80c5cd 100644
> --- a/include/net/mac80211.h
> +++ b/include/net/mac80211.h
> @@ -1455,6 +1455,10 @@ struct ieee80211_tx_control {
>   *
>   * @IEEE80211_HW_TIMING_BEACON_ONLY: Use sync timing from beacon frames
>   *	only, to allow getting TBTT of a DTIM beacon.
> + *
> + * @IEEE80211_HW_SUPPORTS_ACTIVE_MONITOR: Device supports an active monitor
> + *	interface that responds to unicast packets directed at its MAC
> + *	address.

... basically moving this to nl80211

johannes


^ permalink raw reply

* Re: [PATCH 1/3] cfg80211: support an active monitor interface flag
From: Johannes Berg @ 2013-05-27  8:42 UTC (permalink / raw)
  To: Felix Fietkau; +Cc: linux-wireless
In-Reply-To: <1369577107-87931-1-git-send-email-nbd@openwrt.org>

On Sun, 2013-05-26 at 16:05 +0200, Felix Fietkau wrote:
> An active monitor interface is one that is used for communication (via
> injection). It is expected to ACK incoming unicast packets. This is
> useful for running various 802.11 testing utilities that associate to an
> AP via injection and manage the state in user space.

I think it would be useful to make an nl80211 feature flag for this.

johannes


^ permalink raw reply

* [PATCHv2] mac80211: Allow single vif mac address change with addr_mask
From: Helmut Schaa @ 2013-05-27  8:43 UTC (permalink / raw)
  To: linux-wireless
  Cc: johannes, Helmut Schaa, Jakub Kicinski, Alessandro Lannocca,
	Bruno Randolf
In-Reply-To: <1369140893-22622-1-git-send-email-helmut.schaa@googlemail.com>

When changing the MAC address of a single vif mac80211 will check if
the new address fits into the address mask specified by the driver.
This only needs to be done when using multiple BSSIDs. Hence, check
the new address only against all other vifs.

Also fix the MAC address assignment on new interfaces if the user
changed the address of a vif such that perm_addr is not covered by
addr_mask anymore.

Resolves:
https://bugzilla.kernel.org/show_bug.cgi?id=57371

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Jakub Kicinski <kubakici@wp.pl>
Reported-by: Alessandro Lannocca <alessandro.lannocca@gmail.com>
Cc: Alessandro Lannocca <alessandro.lannocca@gmail.com>
Cc: Bruno Randolf <br1@thinktube.com>
---
 net/mac80211/iface.c |   26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 60f1ce5..3000cda 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -159,9 +159,10 @@ static int ieee80211_change_mtu(struct net_device *dev, int new_mtu)
 	return 0;
 }
 
-static int ieee80211_verify_mac(struct ieee80211_local *local, u8 *addr)
+static int ieee80211_verify_mac(struct ieee80211_sub_if_data *sdata, u8 *addr)
 {
-	struct ieee80211_sub_if_data *sdata;
+	struct ieee80211_local *local = sdata->local;
+	struct ieee80211_sub_if_data *iter;
 	u64 new, mask, tmp;
 	u8 *m;
 	int ret = 0;
@@ -181,11 +182,14 @@ static int ieee80211_verify_mac(struct ieee80211_local *local, u8 *addr)
 
 
 	mutex_lock(&local->iflist_mtx);
-	list_for_each_entry(sdata, &local->interfaces, list) {
-		if (sdata->vif.type == NL80211_IFTYPE_MONITOR)
+	list_for_each_entry(iter, &local->interfaces, list) {
+		if (iter == sdata)
 			continue;
 
-		m = sdata->vif.addr;
+		if (iter->vif.type == NL80211_IFTYPE_MONITOR)
+			continue;
+
+		m = iter->vif.addr;
 		tmp =	((u64)m[0] << 5*8) | ((u64)m[1] << 4*8) |
 			((u64)m[2] << 3*8) | ((u64)m[3] << 2*8) |
 			((u64)m[4] << 1*8) | ((u64)m[5] << 0*8);
@@ -209,7 +213,7 @@ static int ieee80211_change_mac(struct net_device *dev, void *addr)
 	if (ieee80211_sdata_running(sdata))
 		return -EBUSY;
 
-	ret = ieee80211_verify_mac(sdata->local, sa->sa_data);
+	ret = ieee80211_verify_mac(sdata, sa->sa_data);
 	if (ret)
 		return ret;
 
@@ -1479,7 +1483,17 @@ static void ieee80211_assign_perm_addr(struct ieee80211_local *local,
 			break;
 		}
 
+		/*
+		 * Pick address of existing interface in case user changed
+		 * MAC address manually, default to perm_addr.
+		 */
 		m = local->hw.wiphy->perm_addr;
+		list_for_each_entry(sdata, &local->interfaces, list) {
+			if (sdata->vif.type == NL80211_IFTYPE_MONITOR)
+				continue;
+			m = sdata->vif.addr;
+			break;
+		}
 		start = ((u64)m[0] << 5*8) | ((u64)m[1] << 4*8) |
 			((u64)m[2] << 3*8) | ((u64)m[3] << 2*8) |
 			((u64)m[4] << 1*8) | ((u64)m[5] << 0*8);
-- 
1.7.10.4


^ permalink raw reply related

* [PATCH 2/3] mac80211: support active monitor interfaces
From: Felix Fietkau @ 2013-05-26 14:05 UTC (permalink / raw)
  To: linux-wireless; +Cc: johannes
In-Reply-To: <1369577107-87931-1-git-send-email-nbd@openwrt.org>

Support them only if the driver advertises support for them via
IEEE80211_HW_SUPPORTS_ACTIVE_MONITOR. Unlike normal monitor interfaces,
they are added to the driver, along with their MAC address.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
---
 include/net/mac80211.h     |  5 +++++
 net/mac80211/cfg.c         | 11 +++++++----
 net/mac80211/driver-ops.h  |  3 ++-
 net/mac80211/ieee80211_i.h |  2 +-
 net/mac80211/iface.c       | 33 ++++++++++++++++++++++++++-------
 net/mac80211/util.c        |  6 ++++++
 6 files changed, 47 insertions(+), 13 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 885898a..b80c5cd 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1455,6 +1455,10 @@ struct ieee80211_tx_control {
  *
  * @IEEE80211_HW_TIMING_BEACON_ONLY: Use sync timing from beacon frames
  *	only, to allow getting TBTT of a DTIM beacon.
+ *
+ * @IEEE80211_HW_SUPPORTS_ACTIVE_MONITOR: Device supports an active monitor
+ *	interface that responds to unicast packets directed at its MAC
+ *	address.
  */
 enum ieee80211_hw_flags {
 	IEEE80211_HW_HAS_RATE_CONTROL			= 1<<0,
@@ -1484,6 +1488,7 @@ enum ieee80211_hw_flags {
 	IEEE80211_HW_SUPPORTS_RC_TABLE			= 1<<24,
 	IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF		= 1<<25,
 	IEEE80211_HW_TIMING_BEACON_ONLY			= 1<<26,
+	IEEE80211_HW_SUPPORTS_ACTIVE_MONITOR		= 1<<27,
 };
 
 /**
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 1a89c80..7f73859 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -73,16 +73,19 @@ static int ieee80211_change_iface(struct wiphy *wiphy,
 		struct ieee80211_local *local = sdata->local;
 
 		if (ieee80211_sdata_running(sdata)) {
+			u32 mask = MONITOR_FLAG_COOK_FRAMES |
+				   MONITOR_FLAG_ACTIVE;
+
 			/*
-			 * Prohibit MONITOR_FLAG_COOK_FRAMES to be
-			 * changed while the interface is up.
+			 * Prohibit MONITOR_FLAG_COOK_FRAMES and
+			 * MONITOR_FLAG_ACTIVE to be changed while the
+			 * interface is up.
 			 * Else we would need to add a lot of cruft
 			 * to update everything:
 			 *	cooked_mntrs, monitor and all fif_* counters
 			 *	reconfigure hardware
 			 */
-			if ((*flags & MONITOR_FLAG_COOK_FRAMES) !=
-			    (sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES))
+			if ((*flags & mask) != (sdata->u.mntr_flags & mask))
 				return -EBUSY;
 
 			ieee80211_adjust_monitor_flags(sdata, -1);
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index 169664c..5844f68 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -146,7 +146,8 @@ static inline int drv_add_interface(struct ieee80211_local *local,
 
 	if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_AP_VLAN ||
 		    (sdata->vif.type == NL80211_IFTYPE_MONITOR &&
-		     !(local->hw.flags & IEEE80211_HW_WANT_MONITOR_VIF))))
+		     !(local->hw.flags & IEEE80211_HW_WANT_MONITOR_VIF) &&
+			 !(sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE))))
 		return -EINVAL;
 
 	trace_drv_add_interface(local, sdata);
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 44be28c..280170a 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -892,7 +892,7 @@ struct ieee80211_local {
 	spinlock_t queue_stop_reason_lock;
 
 	int open_count;
-	int monitors, cooked_mntrs;
+	int monitors, cooked_mntrs, active_mntrs;
 	/* number of interfaces with corresponding FIF_ flags */
 	int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
 	    fif_probe_req;
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 60f1ce5..234503f 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -209,9 +209,11 @@ static int ieee80211_change_mac(struct net_device *dev, void *addr)
 	if (ieee80211_sdata_running(sdata))
 		return -EBUSY;
 
-	ret = ieee80211_verify_mac(sdata->local, sa->sa_data);
-	if (ret)
-		return ret;
+	if (sdata->vif.type != NL80211_IFTYPE_MONITOR) {
+		ret = ieee80211_verify_mac(sdata->local, sa->sa_data);
+		if (ret)
+			return ret;
+	}
 
 	ret = eth_mac_addr(dev, sa);
 
@@ -479,9 +481,13 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
 	case NL80211_IFTYPE_AP:
 		sdata->bss = &sdata->u.ap;
 		break;
+	case NL80211_IFTYPE_MONITOR:
+		if ((sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE) &&
+		    !(local->hw.flags & IEEE80211_HW_SUPPORTS_ACTIVE_MONITOR))
+			return -EOPNOTSUPP;
+		break;
 	case NL80211_IFTYPE_MESH_POINT:
 	case NL80211_IFTYPE_STATION:
-	case NL80211_IFTYPE_MONITOR:
 	case NL80211_IFTYPE_ADHOC:
 	case NL80211_IFTYPE_P2P_DEVICE:
 		/* no special treatment */
@@ -538,7 +544,13 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
 			break;
 		}
 
-		if (local->monitors == 0 && local->open_count == 0) {
+		if (sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE) {
+			res = drv_add_interface(local, sdata);
+			if (res)
+				goto err_stop;
+
+			local->active_mntrs++;
+		} else if (local->monitors == 0 && local->open_count == 0) {
 			res = ieee80211_add_virtual_monitor(local);
 			if (res)
 				goto err_stop;
@@ -831,6 +843,9 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
 			break;
 		}
 
+		if (sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE)
+			local->active_mntrs--;
+
 		local->monitors--;
 		if (local->monitors == 0) {
 			local->hw.conf.flags &= ~IEEE80211_CONF_MONITOR;
@@ -912,7 +927,11 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
 		mutex_lock(&local->mtx);
 		ieee80211_recalc_idle(local);
 		mutex_unlock(&local->mtx);
-		break;
+
+		if (!(sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE))
+			break;
+
+		/* fall through */
 	default:
 		if (going_down)
 			drv_remove_interface(local, sdata);
@@ -1061,7 +1080,7 @@ static const struct net_device_ops ieee80211_monitorif_ops = {
 	.ndo_start_xmit		= ieee80211_monitor_start_xmit,
 	.ndo_set_rx_mode	= ieee80211_set_multicast_list,
 	.ndo_change_mtu 	= ieee80211_change_mtu,
-	.ndo_set_mac_address 	= eth_mac_addr,
+	.ndo_set_mac_address 	= ieee80211_change_mac,
 	.ndo_select_queue	= ieee80211_monitor_select_queue,
 };
 
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 27e0715..7cbe0db 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -560,6 +560,9 @@ void ieee80211_iterate_active_interfaces(
 	list_for_each_entry(sdata, &local->interfaces, list) {
 		switch (sdata->vif.type) {
 		case NL80211_IFTYPE_MONITOR:
+			if (!(sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE))
+				continue;
+			break;
 		case NL80211_IFTYPE_AP_VLAN:
 			continue;
 		default:
@@ -598,6 +601,9 @@ void ieee80211_iterate_active_interfaces_atomic(
 	list_for_each_entry_rcu(sdata, &local->interfaces, list) {
 		switch (sdata->vif.type) {
 		case NL80211_IFTYPE_MONITOR:
+			if (!(sdata->u.mntr_flags & MONITOR_FLAG_ACTIVE))
+				continue;
+			break;
 		case NL80211_IFTYPE_AP_VLAN:
 			continue;
 		default:
-- 
1.8.0.2


^ permalink raw reply related

* [PATCH 3/3] ath9k: advertise support for active monitor interfaces
From: Felix Fietkau @ 2013-05-26 14:05 UTC (permalink / raw)
  To: linux-wireless; +Cc: johannes
In-Reply-To: <1369577107-87931-1-git-send-email-nbd@openwrt.org>

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
---
 drivers/net/wireless/ath/ath9k/init.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index c0aa4ff..86b14e8 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -764,7 +764,8 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
 		IEEE80211_HW_PS_NULLFUNC_STACK |
 		IEEE80211_HW_SPECTRUM_MGMT |
 		IEEE80211_HW_REPORTS_TX_ACK_STATUS |
-		IEEE80211_HW_SUPPORTS_RC_TABLE;
+		IEEE80211_HW_SUPPORTS_RC_TABLE |
+		IEEE80211_HW_SUPPORTS_ACTIVE_MONITOR;
 
 	if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT)
 		 hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
-- 
1.8.0.2


^ permalink raw reply related

* [PATCH 1/3] cfg80211: support an active monitor interface flag
From: Felix Fietkau @ 2013-05-26 14:05 UTC (permalink / raw)
  To: linux-wireless; +Cc: johannes

An active monitor interface is one that is used for communication (via
injection). It is expected to ACK incoming unicast packets. This is
useful for running various 802.11 testing utilities that associate to an
AP via injection and manage the state in user space.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
---
 include/net/cfg80211.h       | 1 +
 include/uapi/linux/nl80211.h | 3 +++
 net/wireless/nl80211.c       | 1 +
 3 files changed, 5 insertions(+)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 26b5b69..489821f 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -954,6 +954,7 @@ enum monitor_flags {
 	MONITOR_FLAG_CONTROL		= 1<<NL80211_MNTR_FLAG_CONTROL,
 	MONITOR_FLAG_OTHER_BSS		= 1<<NL80211_MNTR_FLAG_OTHER_BSS,
 	MONITOR_FLAG_COOK_FRAMES	= 1<<NL80211_MNTR_FLAG_COOK_FRAMES,
+	MONITOR_FLAG_ACTIVE		= 1<<NL80211_MNTR_FLAG_ACTIVE,
 };
 
 /**
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index d1e48b5..d607848 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -2413,6 +2413,8 @@ enum nl80211_survey_info {
  * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering
  * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing.
  *	overrides all other flags.
+ * @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address
+ *	and ACK incoming unicast packets.
  *
  * @__NL80211_MNTR_FLAG_AFTER_LAST: internal use
  * @NL80211_MNTR_FLAG_MAX: highest possible monitor flag
@@ -2424,6 +2426,7 @@ enum nl80211_mntr_flags {
 	NL80211_MNTR_FLAG_CONTROL,
 	NL80211_MNTR_FLAG_OTHER_BSS,
 	NL80211_MNTR_FLAG_COOK_FRAMES,
+	NL80211_MNTR_FLAG_ACTIVE,
 
 	/* keep last */
 	__NL80211_MNTR_FLAG_AFTER_LAST,
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index dfdb5e6..500a6c5 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -2279,6 +2279,7 @@ static const struct nla_policy mntr_flags_policy[NL80211_MNTR_FLAG_MAX + 1] = {
 	[NL80211_MNTR_FLAG_CONTROL] = { .type = NLA_FLAG },
 	[NL80211_MNTR_FLAG_OTHER_BSS] = { .type = NLA_FLAG },
 	[NL80211_MNTR_FLAG_COOK_FRAMES] = { .type = NLA_FLAG },
+	[NL80211_MNTR_FLAG_ACTIVE] = { .type = NLA_FLAG },
 };
 
 static int parse_monitor_flags(struct nlattr *nla, u32 *mntrflags)
-- 
1.8.0.2


^ permalink raw reply related

* [PATCH RFC] Re: skb_under_panic in ath9k
From: Oleksij Rempel @ 2013-05-26  8:02 UTC (permalink / raw)
  To: Marc Kleine-Budde; +Cc: linux-wireless@vger.kernel.org, ath9k-devel
In-Reply-To: <51A1A9C4.4000203@rempel-privat.de>

[-- Attachment #1: Type: text/plain, Size: 6948 bytes --]

Am 26.05.2013 08:20, schrieb Oleksij Rempel:
> Am 24.05.2013 10:47, schrieb Marc Kleine-Budde:
>> added ath9k-devel to Cc
>>
>> On 05/23/2013 12:02 AM, Marc Kleine-Budde wrote:
>>> Hello,
>>>
>>> I'm on a kirkwood based armv5 system with an USB attached TP-Link
>>> TL-WN821N - Atheros AR7010+AR9287, [1]. the wlan is running in AP mode
>>> with hostapd-1.0. The kernel is v3.8.12 from debian (3.8-1-kirkwood #1
>>> Debian 3.8.12-1).
>>>
>>> The system crashes repeatedly after about one week with the following
>>> oops:
>>>
>>> [633625.401875] skbuff: skb_under_panic: text:bf501028 len:128 put:8
>>> head:d2788800 data:d27887fe tail:0xd278887e end:0xd2788f40 dev:wlan1
>>> [633625.414180] ------------[ cut here ]------------
>>> [633625.418909] kernel BUG at
>>> /build/buildd-linux_3.8.12-1-armel-7F6kBx/linux-3.8.12/net/core/skbuff.c:145!
>>>
>>> [633625.428430] Internal error: Oops - BUG: 0 [#1] ARM
>>> [633625.433322] Modules linked in:
>>> [...]
>>> [633625.583170] CPU: 0    Not tainted  (3.8-1-kirkwood #1 Debian
>>> 3.8.12-1)
>>> [633625.589821] PC is at skb_push+0x6c/0x84
>>> [633625.593763] LR is at skb_push+0x6c/0x84
>>> [633625.597707] pc : [<c0282990>]    lr : [<c0282990>]    psr: 20000013
>>> [633625.597707] sp : c04c1d50  ip : 000008f8  fp : df04ea54
>>> [633625.609404] r10: 00000002  r9 : 00000008  r8 : df00dca8
>>> [633625.614734] r7 : 00000006  r6 : c04410a0  r5 : d278887e  r4 :
>>> d2788800
>>> [633625.621378] r3 : c04d328c  r2 : 20000093  r1 : 00000001  r0 :
>>> 00000079
>>> [633625.628015] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
>>> Segment kernel
>>> [633625.635443] Control: 0005317f  Table: 1f224000  DAC: 00000017
>>> [633625.641295] Process swapper (pid: 0, stack limit = 0xc04c01b8)
>>> [633625.647241] Stack: (0xc04c1d50 to 0xc04c2000)
>>> [633625.657414] 1d40:                                     00000008
>>> d2788800 d27887fe d278887e
>>> [633625.666101] 1d60: d2788f40 df04e000 df00dc00 df2e0c00 00000078
>>> bf501028 df2e0c00 dfba3120
>>> [633625.675025] 1d80: d278882a df04e9a0 00000000 bf504110 dfb3ce20
>>> 00000201 00000000 00084502
>>> [633625.683954] 1da0: 00000001 df2e0c00 dfba3120 00000008 00000002
>>> c04c1df4 00000000 00000001
>>> [633625.693553] 1dc0: 0000006a bf5058b0 00000000 c04c1df4 c04c1e30
>>> dfba2300 c151ff18 df04e9a0
>>> [633625.702041] 1de0: c04c1e30 bf37560c 0000000c 00004288 c04c1e2c
>>> c151ff18 0000006a df2e0c00
>>> [633625.710540] 1e00: dfba2300 00000000 0000006a df04e462 00000000
>>> 00000001 60000013 bf375760
>>> [633625.718904] 1e20: 00000001 c14c19a0 c14c0460 00000000 c04c1e30
>>> c04c1e30 00000000 dfba2300
>>> [633625.727374] 1e40: df04e460 c151fc00 de5af200 00000002 00000002
>>> dfba2300 dfba2308 dfba28a8
>>> [633625.787263] 1e60: c04c1e7c dfba28ac df2e0c00 bf376d58 c0508ae0
>>> 00000000 0000012c 00000080
>>> [633625.798914] 1e80: 03c66eab c0508ae8 c04d4c68 c04d3494 00000000
>>> 00000000 00000006 00000100
>>> [633625.810249] 1ea0: c052b3a0 00000009 c052b3c0 c0026e2c 00000001
>>> 00000018 c04c0000 c0026644
>>> [633625.818620] 1ec0: c04d8f74 c1484260 1144b25a c04d8f74 00000000
>>> 00200000 c04c1f4c 00000013
>>> [633625.831230] 1ee0: 00000000 fed20200 c04c1f4c 00000000 56251311
>>> c04d0420 00000000 c0026a2c
>>> [633625.842695] 1f00: 00002000 c000f28c c004e27c c0271318 20000013
>>> c000df94 c04c1f60 60000013
>>> [633625.853824] 1f20: 000e32dc 0002404f b5def004 0002404f c04d0698
>>> 00000000 00000000 56251311
>>> [633625.864745] 1f40: c04d0420 00000000 00000003 c04c1f60 c004e27c
>>> c0271318 20000013 ffffffff
>>> [633625.875714] 1f60: b5ed22e0 0002404f 0084d405 00000000 00000000
>>> c04d0698 00000000 c04d0698
>>> [633625.886646] 1f80: 00000000 c04d0420 004b8074 c0270e88 c04d0698
>>> 00000000 c050918c c0271014
>>> [633625.898317] 1fa0: c04c0000 c0509b28 c04cc1cc c096f0e0 00004000
>>> c000f484 c04c8c20 00000000
>>> [633625.909787] 1fc0: c04b9650 c0498764 ffffffff ffffffff c0498284
>>> 00000000 00000000 c04b9650
>>> [633625.918159] 1fe0: 00000000 00053175 c04c8048 c04b964c c04cc1c4
>>> 00008040 00000000 00000000
>>> [633625.926557] [<c0282990>] (skb_push+0x6c/0x84) from [<bf501028>]
>>> (htc_issue_send.constprop.0+0x28/0x68 [ath9k_htc])
>>> [633625.937158] [<bf501028>] (htc_issue_send.constprop.0+0x28/0x68
>>> [ath9k_htc]) from [<bf504110>] (ath9k_htc_tx_start+0x290/0x2a4
>>> [ath9k_htc])
>>> [633625.949877] [<bf504110>] (ath9k_htc_tx_start+0x290/0x2a4
>>> [ath9k_htc]) from [<bf5058b0>] (ath9k_htc_tx+0x98/0xcc [ath9k_htc])
>>> [633625.961458] [<bf5058b0>] (ath9k_htc_tx+0x98/0xcc [ath9k_htc])
>>> from [<bf37560c>] (__ieee80211_tx+0x210/0x2a8 [mac80211])
>>> [633625.972695] [<bf37560c>] (__ieee80211_tx+0x210/0x2a8 [mac80211])
>>> from [<bf375760>] (ieee80211_tx+0xbc/0xc4 [mac80211])
>>> [633625.983816] [<bf375760>] (ieee80211_tx+0xbc/0xc4 [mac80211]) from
>>> [<bf376d58>] (ieee80211_tx_pending+0xf0/0x194 [mac80211])
>>> [633625.995326] [<bf376d58>] (ieee80211_tx_pending+0xf0/0x194
>>> [mac80211]) from [<c0026e2c>] (tasklet_action+0x84/0xcc)
>>> [633626.005905] [<c0026e2c>] (tasklet_action+0x84/0xcc) from
>>> [<c0026644>] (__do_softirq+0xdc/0x204)
>>> [633626.014750] [<c0026644>] (__do_softirq+0xdc/0x204) from
>>> [<c0026a2c>] (irq_exit+0x40/0x8c)
>>> [633626.023103] [<c0026a2c>] (irq_exit+0x40/0x8c) from [<c000f28c>]
>>> (handle_IRQ+0x64/0x84)
>>> [633626.031193] [<c000f28c>] (handle_IRQ+0x64/0x84) from [<c000df94>]
>>> (__irq_svc+0x34/0x78)
>>> [633626.039412] [<c000df94>] (__irq_svc+0x34/0x78) from [<c0271318>]
>>> (cpuidle_wrap_enter+0x54/0x9c)
>>> [633626.048331] [<c0271318>] (cpuidle_wrap_enter+0x54/0x9c) from
>>> [<c0270e88>] (cpuidle_enter_state+0x14/0x68)
>>> [633626.058162] [<c0270e88>] (cpuidle_enter_state+0x14/0x68) from
>>> [<c0271014>] (cpuidle_idle_call+0x138/0x25c)
>>> [633626.067998] [<c0271014>] (cpuidle_idle_call+0x138/0x25c) from
>>> [<c000f484>] (cpu_idle+0x68/0xc8)
>>> [633626.076852] [<c000f484>] (cpu_idle+0x68/0xc8) from [<c0498764>]
>>> (start_kernel+0x2b4/0x30c)
>>> [633626.146230] Code: e58dc014 e59f1014 e59f0014 eb0308b0 (e7f001f2)
>>> [633626.152520] ---[ end trace ee5dbceea3381e46 ]---
>>> [633626.157249] Kernel panic - not syncing: Fatal exception in interrupt
>>>
>>> Has the problem been fixed already? I can update the kernel to a recent
>>> version if needed.
>
> this oops was generated by skb_push:
> " skb_push() will decrement the 'skb->data' pointer by the specified
> number of bytes. It will also increment 'skb->len' by that number of
> bytes as well. The caller must make sure there is enough head room for
> the push being performed. This condition is checked for by skb_push()
> and an assertion failure will trigger if this rule is violated."
>
> hmm... theoretically driver should check the size of date before
> skb_push, but i do not see that other driver do this check. Interesting
> where this buffer was allocated.
>

In attachment is a patch. I hope it is proper fix. "Elders of the 
Internet" your comments :)

-- 
Regards,
Oleksij

[-- Attachment #2: oops.diff --]
[-- Type: text/x-patch, Size: 672 bytes --]

diff --git a/drivers/net/wireless/ath/ath9k/htc_hst.c b/drivers/net/wireless/ath/ath9k/htc_hst.c
index aac4a40..2901351 100644
--- a/drivers/net/wireless/ath/ath9k/htc_hst.c
+++ b/drivers/net/wireless/ath/ath9k/htc_hst.c
@@ -26,6 +26,12 @@ static int htc_issue_send(struct htc_target *target, struct sk_buff* skb,
 	struct htc_endpoint *endpoint = &target->endpoint[epid];
 	int status;
 
+	if (skb_headroom(skb) < len &&
+	    pskb_expand_head(skb, len, 0, GFP_ATOMIC)) {
+		dev_err(target->dev, "Unable to expand headrom to %d\n", len);
+		return -ENOMEM;
+	}
+
 	hdr = (struct htc_frame_hdr *)
 		skb_push(skb, sizeof(struct htc_frame_hdr));
 	hdr->endpoint_id = epid;

^ permalink raw reply related

* Re: skb_under_panic in ath9k
From: Oleksij Rempel @ 2013-05-26  6:20 UTC (permalink / raw)
  To: Marc Kleine-Budde; +Cc: linux-wireless@vger.kernel.org, ath9k-devel
In-Reply-To: <519F291B.1060905@blackshift.org>

Am 24.05.2013 10:47, schrieb Marc Kleine-Budde:
> added ath9k-devel to Cc
>
> On 05/23/2013 12:02 AM, Marc Kleine-Budde wrote:
>> Hello,
>>
>> I'm on a kirkwood based armv5 system with an USB attached TP-Link
>> TL-WN821N - Atheros AR7010+AR9287, [1]. the wlan is running in AP mode
>> with hostapd-1.0. The kernel is v3.8.12 from debian (3.8-1-kirkwood #1
>> Debian 3.8.12-1).
>>
>> The system crashes repeatedly after about one week with the following
>> oops:
>>
>> [633625.401875] skbuff: skb_under_panic: text:bf501028 len:128 put:8 head:d2788800 data:d27887fe tail:0xd278887e end:0xd2788f40 dev:wlan1
>> [633625.414180] ------------[ cut here ]------------
>> [633625.418909] kernel BUG at /build/buildd-linux_3.8.12-1-armel-7F6kBx/linux-3.8.12/net/core/skbuff.c:145!
>> [633625.428430] Internal error: Oops - BUG: 0 [#1] ARM
>> [633625.433322] Modules linked in:
>> [...]
>> [633625.583170] CPU: 0    Not tainted  (3.8-1-kirkwood #1 Debian 3.8.12-1)
>> [633625.589821] PC is at skb_push+0x6c/0x84
>> [633625.593763] LR is at skb_push+0x6c/0x84
>> [633625.597707] pc : [<c0282990>]    lr : [<c0282990>]    psr: 20000013
>> [633625.597707] sp : c04c1d50  ip : 000008f8  fp : df04ea54
>> [633625.609404] r10: 00000002  r9 : 00000008  r8 : df00dca8
>> [633625.614734] r7 : 00000006  r6 : c04410a0  r5 : d278887e  r4 : d2788800
>> [633625.621378] r3 : c04d328c  r2 : 20000093  r1 : 00000001  r0 : 00000079
>> [633625.628015] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
>> [633625.635443] Control: 0005317f  Table: 1f224000  DAC: 00000017
>> [633625.641295] Process swapper (pid: 0, stack limit = 0xc04c01b8)
>> [633625.647241] Stack: (0xc04c1d50 to 0xc04c2000)
>> [633625.657414] 1d40:                                     00000008 d2788800 d27887fe d278887e
>> [633625.666101] 1d60: d2788f40 df04e000 df00dc00 df2e0c00 00000078 bf501028 df2e0c00 dfba3120
>> [633625.675025] 1d80: d278882a df04e9a0 00000000 bf504110 dfb3ce20 00000201 00000000 00084502
>> [633625.683954] 1da0: 00000001 df2e0c00 dfba3120 00000008 00000002 c04c1df4 00000000 00000001
>> [633625.693553] 1dc0: 0000006a bf5058b0 00000000 c04c1df4 c04c1e30 dfba2300 c151ff18 df04e9a0
>> [633625.702041] 1de0: c04c1e30 bf37560c 0000000c 00004288 c04c1e2c c151ff18 0000006a df2e0c00
>> [633625.710540] 1e00: dfba2300 00000000 0000006a df04e462 00000000 00000001 60000013 bf375760
>> [633625.718904] 1e20: 00000001 c14c19a0 c14c0460 00000000 c04c1e30 c04c1e30 00000000 dfba2300
>> [633625.727374] 1e40: df04e460 c151fc00 de5af200 00000002 00000002 dfba2300 dfba2308 dfba28a8
>> [633625.787263] 1e60: c04c1e7c dfba28ac df2e0c00 bf376d58 c0508ae0 00000000 0000012c 00000080
>> [633625.798914] 1e80: 03c66eab c0508ae8 c04d4c68 c04d3494 00000000 00000000 00000006 00000100
>> [633625.810249] 1ea0: c052b3a0 00000009 c052b3c0 c0026e2c 00000001 00000018 c04c0000 c0026644
>> [633625.818620] 1ec0: c04d8f74 c1484260 1144b25a c04d8f74 00000000 00200000 c04c1f4c 00000013
>> [633625.831230] 1ee0: 00000000 fed20200 c04c1f4c 00000000 56251311 c04d0420 00000000 c0026a2c
>> [633625.842695] 1f00: 00002000 c000f28c c004e27c c0271318 20000013 c000df94 c04c1f60 60000013
>> [633625.853824] 1f20: 000e32dc 0002404f b5def004 0002404f c04d0698 00000000 00000000 56251311
>> [633625.864745] 1f40: c04d0420 00000000 00000003 c04c1f60 c004e27c c0271318 20000013 ffffffff
>> [633625.875714] 1f60: b5ed22e0 0002404f 0084d405 00000000 00000000 c04d0698 00000000 c04d0698
>> [633625.886646] 1f80: 00000000 c04d0420 004b8074 c0270e88 c04d0698 00000000 c050918c c0271014
>> [633625.898317] 1fa0: c04c0000 c0509b28 c04cc1cc c096f0e0 00004000 c000f484 c04c8c20 00000000
>> [633625.909787] 1fc0: c04b9650 c0498764 ffffffff ffffffff c0498284 00000000 00000000 c04b9650
>> [633625.918159] 1fe0: 00000000 00053175 c04c8048 c04b964c c04cc1c4 00008040 00000000 00000000
>> [633625.926557] [<c0282990>] (skb_push+0x6c/0x84) from [<bf501028>] (htc_issue_send.constprop.0+0x28/0x68 [ath9k_htc])
>> [633625.937158] [<bf501028>] (htc_issue_send.constprop.0+0x28/0x68 [ath9k_htc]) from [<bf504110>] (ath9k_htc_tx_start+0x290/0x2a4 [ath9k_htc])
>> [633625.949877] [<bf504110>] (ath9k_htc_tx_start+0x290/0x2a4 [ath9k_htc]) from [<bf5058b0>] (ath9k_htc_tx+0x98/0xcc [ath9k_htc])
>> [633625.961458] [<bf5058b0>] (ath9k_htc_tx+0x98/0xcc [ath9k_htc]) from [<bf37560c>] (__ieee80211_tx+0x210/0x2a8 [mac80211])
>> [633625.972695] [<bf37560c>] (__ieee80211_tx+0x210/0x2a8 [mac80211]) from [<bf375760>] (ieee80211_tx+0xbc/0xc4 [mac80211])
>> [633625.983816] [<bf375760>] (ieee80211_tx+0xbc/0xc4 [mac80211]) from [<bf376d58>] (ieee80211_tx_pending+0xf0/0x194 [mac80211])
>> [633625.995326] [<bf376d58>] (ieee80211_tx_pending+0xf0/0x194 [mac80211]) from [<c0026e2c>] (tasklet_action+0x84/0xcc)
>> [633626.005905] [<c0026e2c>] (tasklet_action+0x84/0xcc) from [<c0026644>] (__do_softirq+0xdc/0x204)
>> [633626.014750] [<c0026644>] (__do_softirq+0xdc/0x204) from [<c0026a2c>] (irq_exit+0x40/0x8c)
>> [633626.023103] [<c0026a2c>] (irq_exit+0x40/0x8c) from [<c000f28c>] (handle_IRQ+0x64/0x84)
>> [633626.031193] [<c000f28c>] (handle_IRQ+0x64/0x84) from [<c000df94>] (__irq_svc+0x34/0x78)
>> [633626.039412] [<c000df94>] (__irq_svc+0x34/0x78) from [<c0271318>] (cpuidle_wrap_enter+0x54/0x9c)
>> [633626.048331] [<c0271318>] (cpuidle_wrap_enter+0x54/0x9c) from [<c0270e88>] (cpuidle_enter_state+0x14/0x68)
>> [633626.058162] [<c0270e88>] (cpuidle_enter_state+0x14/0x68) from [<c0271014>] (cpuidle_idle_call+0x138/0x25c)
>> [633626.067998] [<c0271014>] (cpuidle_idle_call+0x138/0x25c) from [<c000f484>] (cpu_idle+0x68/0xc8)
>> [633626.076852] [<c000f484>] (cpu_idle+0x68/0xc8) from [<c0498764>] (start_kernel+0x2b4/0x30c)
>> [633626.146230] Code: e58dc014 e59f1014 e59f0014 eb0308b0 (e7f001f2)
>> [633626.152520] ---[ end trace ee5dbceea3381e46 ]---
>> [633626.157249] Kernel panic - not syncing: Fatal exception in interrupt
>>
>> Has the problem been fixed already? I can update the kernel to a recent
>> version if needed.

this oops was generated by skb_push:
" skb_push() will decrement the 'skb->data' pointer by the specified 
number of bytes. It will also increment 'skb->len' by that number of 
bytes as well. The caller must make sure there is enough head room for 
the push being performed. This condition is checked for by skb_push() 
and an assertion failure will trigger if this rule is violated."

hmm... theoretically driver should check the size of date before 
skb_push, but i do not see that other driver do this check. Interesting 
where this buffer was allocated.

-- 
Regards,
Oleksij

^ permalink raw reply

* Frequent crashes on Ubuntu 12.04
From: Пётр Дёмин @ 2013-05-25 22:36 UTC (permalink / raw)
  To: linux-wireless, ilw

[-- Attachment #1: Type: text/plain, Size: 753 bytes --]

Hello,

Could you, please, help me with following issue?

I'm experiencing frequent failures on my notebook with Ubuntu 12.04.
Error appears in following order:
# Wi-Fi disconnects and starts reconnecting.
# After some time (about 30 seconds), password for wi-fi network is asked.
# No matter what I enter, connection fails with same question about password.

If I uncheck "Enable Wireless" and then check it back, no networks are shown.

I attached part of syslog, written during failure.

This also might help, I hope:
$ sudo lshw | grep iwl
configuration: broadcast=yes driver=iwlwifi
driverversion=3.2.0-44-generic firmware=39.31.5.1 build 35138
ip=192.168.1.33 latency=0 link=yes multicast=yes wireless=IEEE
802.11bg

--
Best regards, Peter Demin.

[-- Attachment #2: iwlwifi-error.log --]
[-- Type: application/octet-stream, Size: 29562 bytes --]

May 25 23:59:08 lucy kernel: [ 2213.820149] iwlwifi 0000:03:00.0: Error sending POWER_TABLE_CMD: time out after 2000ms.
May 25 23:59:08 lucy kernel: [ 2213.820158] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 121
May 25 23:59:10 lucy kernel: [ 2213.820165] iwlwifi 0000:03:00.0: set power fail, ret = -110
May 25 23:59:10 lucy kernel: [ 2216.320177] iwlwifi 0000:03:00.0: Error sending REPLY_QOS_PARAM: time out after 2000ms.
May 25 23:59:10 lucy kernel: [ 2216.320188] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 123
May 25 23:59:10 lucy kernel: [ 2216.320194] iwlwifi 0000:03:00.0: Failed to update QoS
May 25 23:59:12 lucy kernel: [ 2218.320195] iwlwifi 0000:03:00.0: Error sending REPLY_RXON: time out after 2000ms.
May 25 23:59:12 lucy kernel: [ 2218.320206] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 126
May 25 23:59:12 lucy kernel: [ 2218.320212] iwlwifi 0000:03:00.0: Error clearing ASSOC_MSK on BSS (-110)
May 25 23:59:14 lucy kernel: [ 2220.320178] iwlwifi 0000:03:00.0: Error sending REPLY_RXON: time out after 2000ms.
May 25 23:59:14 lucy kernel: [ 2220.320189] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 129
May 25 23:59:14 lucy kernel: [ 2220.320195] iwlwifi 0000:03:00.0: Error clearing ASSOC_MSK on BSS (-110)
May 25 23:59:16 lucy kernel: [ 2222.320118] iwlwifi 0000:03:00.0: Error sending REPLY_ADD_STA: time out after 2000ms.
May 25 23:59:16 lucy kernel: [ 2222.320125] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 132
May 25 23:59:16 lucy kernel: [ 2222.320131] ieee80211 phy0: failed to remove key (0, cc:5d:4e:4b:c5:b0) from hardware (-110)
May 25 23:59:18 lucy kernel: [ 2224.320095] iwlwifi 0000:03:00.0: Error sending REPLY_REMOVE_STA: time out after 2000ms.
May 25 23:59:18 lucy kernel: [ 2224.320105] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 135
May 25 23:59:18 lucy kernel: [ 2224.320113] iwlwifi 0000:03:00.0: Error removing station cc:5d:4e:4b:c5:b0
May 25 23:59:20 lucy kernel: [ 2226.328049] iwlwifi 0000:03:00.0: Error sending REPLY_RXON: time out after 2000ms.
May 25 23:59:20 lucy kernel: [ 2226.328055] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 138
May 25 23:59:20 lucy kernel: [ 2226.328060] iwlwifi 0000:03:00.0: Error clearing ASSOC_MSK on BSS (-110)
May 25 23:59:22 lucy kernel: [ 2228.336191] iwlwifi 0000:03:00.0: fail to flush all tx fifo queues
May 25 23:59:24 lucy kernel: [ 2230.336075] iwlwifi 0000:03:00.0: Error sending POWER_TABLE_CMD: time out after 2000ms.
May 25 23:59:24 lucy kernel: [ 2230.336085] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 140
May 25 23:59:26 lucy wpa_supplicant[1062]: CTRL-EVENT-DISCONNECTED bssid=cc:5d:4e:4b:c5:b0 reason=4
May 25 23:59:26 lucy kernel: [ 2230.336092] iwlwifi 0000:03:00.0: set power fail, ret = -110
May 25 23:59:26 lucy kernel: [ 2232.336062] iwlwifi 0000:03:00.0: Error sending REPLY_RXON: time out after 2000ms.
May 25 23:59:26 lucy kernel: [ 2232.336072] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 141
May 25 23:59:26 lucy kernel: [ 2232.336079] iwlwifi 0000:03:00.0: Error clearing ASSOC_MSK on BSS (-110)
May 25 23:59:28 lucy NetworkManager[965]: <info> (wlan0): roamed from BSSID CC:5D:4E:4B:C5:B0 (SevenSky) to (none) ((none))
May 25 23:59:28 lucy kernel: [ 2234.348293] iwlwifi 0000:03:00.0: Error sending REPLY_ADD_STA: time out after 2000ms.
May 25 23:59:28 lucy kernel: [ 2234.348303] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 142
May 25 23:59:28 lucy kernel: [ 2234.348313] ieee80211 phy0: failed to remove key (1, ff:ff:ff:ff:ff:ff) from hardware (-110)
May 25 23:59:28 lucy kernel: [ 2234.348466] cfg80211: All devices are disconnected, going to restore regulatory settings
May 25 23:59:28 lucy kernel: [ 2234.348476] cfg80211: Restoring regulatory settings
May 25 23:59:28 lucy kernel: [ 2234.348484] cfg80211: Calling CRDA to update world regulatory domain
May 25 23:59:30 lucy kernel: [ 2236.022711] keyboard: can't emulate rawmode for keycode 240
May 25 23:59:30 lucy kernel: [ 2236.022734] keyboard: can't emulate rawmode for keycode 240
May 25 23:59:30 lucy anacron[21960]: Anacron 2.3 started on 2013-05-25
May 25 23:59:30 lucy anacron[21960]: Normal exit (0 jobs run)
May 25 23:59:30 lucy kernel: [ 2236.348156] iwlwifi 0000:03:00.0: Error sending REPLY_RXON: time out after 2000ms.
May 25 23:59:30 lucy kernel: [ 2236.348162] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 143
May 25 23:59:30 lucy kernel: [ 2236.348166] iwlwifi 0000:03:00.0: Error clearing ASSOC_MSK on BSS (-110)
May 25 23:59:32 lucy kernel: [ 2238.348121] iwlwifi 0000:03:00.0: Error sending POWER_TABLE_CMD: time out after 2000ms.
May 25 23:59:32 lucy kernel: [ 2238.348131] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 144
May 25 23:59:34 lucy kernel: [ 2238.348137] iwlwifi 0000:03:00.0: set power fail, ret = -110
May 25 23:59:34 lucy kernel: [ 2240.348089] iwlwifi 0000:03:00.0: Error sending REPLY_RXON: time out after 2000ms.
May 25 23:59:34 lucy kernel: [ 2240.348099] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 145
May 25 23:59:34 lucy kernel: [ 2240.348106] iwlwifi 0000:03:00.0: Error clearing ASSOC_MSK on BSS (-110)
May 25 23:59:36 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:36 lucy kernel: [ 2242.348097] iwlwifi 0000:03:00.0: Error sending REPLY_SCAN_CMD: time out after 2000ms.
May 25 23:59:36 lucy kernel: [ 2242.348107] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 146
May 25 23:59:36 lucy kernel: [ 2242.348763] cfg80211: Ignoring regulatory request Set by core since the driver uses its own custom regulatory domain
May 25 23:59:36 lucy kernel: [ 2242.348770] cfg80211: World regulatory domain updated:
May 25 23:59:36 lucy kernel: [ 2242.348773] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
May 25 23:59:36 lucy kernel: [ 2242.348779] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
May 25 23:59:36 lucy kernel: [ 2242.348785] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
May 25 23:59:36 lucy kernel: [ 2242.348790] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
May 25 23:59:36 lucy kernel: [ 2242.348796] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
May 25 23:59:36 lucy kernel: [ 2242.348801] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
May 25 23:59:38 lucy kernel: [ 2244.348105] iwlwifi 0000:03:00.0: Error sending POWER_TABLE_CMD: time out after 2000ms.
May 25 23:59:38 lucy kernel: [ 2244.348115] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 147
May 25 23:59:40 lucy NetworkManager[965]: <info> (wlan0): supplicant interface state: completed -> disconnected
May 25 23:59:40 lucy kernel: [ 2244.348121] iwlwifi 0000:03:00.0: set power fail, ret = -110
May 25 23:59:40 lucy kernel: [ 2246.348056] iwlwifi 0000:03:00.0: Error sending REPLY_RXON: time out after 2000ms.
May 25 23:59:40 lucy kernel: [ 2246.348066] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 148
May 25 23:59:40 lucy kernel: [ 2246.348073] iwlwifi 0000:03:00.0: Error clearing ASSOC_MSK on BSS (-110)
May 25 23:59:42 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:42 lucy kernel: [ 2248.348107] iwlwifi 0000:03:00.0: Error sending REPLY_SCAN_CMD: time out after 2000ms.
May 25 23:59:42 lucy kernel: [ 2248.348117] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 149
May 25 23:59:45 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:45 lucy kernel: [ 2251.348080] iwlwifi 0000:03:00.0: Error sending REPLY_SCAN_CMD: time out after 2000ms.
May 25 23:59:45 lucy kernel: [ 2251.348089] iwlwifi 0000:03:00.0: Current CMD queue read_ptr 120 write_ptr 150
May 25 23:59:45 lucy kernel: [ 2251.348553] iwlwifi 0000:03:00.0: No space in command queue
May 25 23:59:45 lucy kernel: [ 2251.348559] iwlwifi 0000:03:00.0: Restarting adapter queue is full
May 25 23:59:45 lucy kernel: [ 2251.348572] iwlwifi 0000:03:00.0: Error sending REPLY_SCAN_CMD: enqueue_hcmd failed: -28
May 25 23:59:45 lucy kernel: [ 2251.352060] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:45 lucy kernel: last message repeated 16 times
May 25 23:59:45 lucy kernel: [ 2251.661985] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:45 lucy kernel: [ 2251.681366] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:45 lucy kernel: [ 2251.699803] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.714626] ieee80211 phy0: Hardware restart was requested
May 25 23:59:46 lucy kernel: [ 2251.714660] iwlwifi 0000:03:00.0: L1 Disabled; Enabling L0S
May 25 23:59:46 lucy kernel: [ 2251.718152] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.718152] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.755174] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.773628] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.792063] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.812902] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.835949] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.849537] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.868031] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.886334] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.904696] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.923209] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.923209] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.960068] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.978502] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2251.996790] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.015314] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.033620] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.052148] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.070673] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.089202] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.107696] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.126001] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.144521] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.162831] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.181344] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.199519] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.217830] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.236037] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.254215] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.272393] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.290606] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.308794] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.326973] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.345177] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.364083] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.382303] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.401648] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:46 lucy kernel: [ 2252.419825] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:52 lucy kernel: [ 2257.432075] iwlwifi 0000:03:00.0: Could not load the INST uCode section
May 25 23:59:52 lucy kernel: [ 2257.432087] iwlwifi 0000:03:00.0: Failed to start RT ucode: -110
May 25 23:59:52 lucy kernel: [ 2257.436036] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:52 lucy kernel: last message repeated 16 times
May 25 23:59:52 lucy kernel: [ 2257.748263] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:52 lucy kernel: [ 2257.766767] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:52 lucy kernel: [ 2257.785000] iwlwifi 0000:03:00.0: MAC is in deep sleep!. CSR_GP_CNTRL = 0xFFFFFFFF
May 25 23:59:52 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:52 lucy kernel: [ 2257.800815] iwlwifi 0000:03:00.0: Unable to initialize device.
May 25 23:59:52 lucy kernel: [ 2257.802416] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 25 23:59:53 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:53 lucy kernel: [ 2258.803832] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 25 23:59:54 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:54 lucy kernel: [ 2259.804265] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 25 23:59:55 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:55 lucy kernel: [ 2260.805563] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 25 23:59:56 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:56 lucy kernel: [ 2261.806171] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 25 23:59:56 lucy NetworkManager[965]: <warn> (wlan0): link timed out.
May 25 23:59:56 lucy NetworkManager[965]: <info> (wlan0): device state change: activated -> disconnected (reason 'supplicant-timeout') [100 30 11]
May 25 23:59:56 lucy NetworkManager[965]: <info> (wlan0): deactivating device (reason 'supplicant-timeout') [11]
May 25 23:59:56 lucy NetworkManager[965]: <info> (wlan0): canceled DHCP transaction, DHCP client pid 1971
May 25 23:59:56 lucy dnsmasq[1987]: exiting on receipt of SIGTERM
May 25 23:59:56 lucy NetworkManager[965]: <info> DNS: starting dnsmasq...
May 25 23:59:56 lucy kernel: [ 2262.252841] ADDRCONF(NETDEV_UP): wlan0: link is not ready
May 25 23:59:56 lucy NetworkManager[965]: <info> (wlan0): writing resolv.conf to /sbin/resolvconf
May 25 23:59:56 lucy dnsmasq[22087]: started, version 2.59 cache disabled
May 25 23:59:56 lucy dnsmasq[22087]: compile time options: IPv6 GNU-getopt DBus i18n DHCP TFTP conntrack IDN
May 25 23:59:56 lucy dnsmasq[22087]: warning: no upstream servers configured
May 25 23:59:56 lucy dbus[847]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
May 25 23:59:56 lucy NetworkManager[965]: <info> Auto-activating connection 'SevenSky'.
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) starting connection 'SevenSky'
May 25 23:59:56 lucy NetworkManager[965]: <info> (wlan0): device state change: disconnected -> prepare (reason 'none') [30 40 0]
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 1 of 5 (Device Prepare) scheduled...
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 1 of 5 (Device Prepare) started...
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 2 of 5 (Device Configure) scheduled...
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 1 of 5 (Device Prepare) complete.
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 2 of 5 (Device Configure) starting...
May 25 23:59:56 lucy NetworkManager[965]: <info> (wlan0): device state change: prepare -> config (reason 'none') [40 50 0]
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0/wireless): access point 'SevenSky' has security, but secrets are required.
May 25 23:59:56 lucy NetworkManager[965]: <info> (wlan0): device state change: config -> need-auth (reason 'none') [50 60 0]
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 2 of 5 (Device Configure) complete.
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 1 of 5 (Device Prepare) scheduled...
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 1 of 5 (Device Prepare) started...
May 25 23:59:56 lucy NetworkManager[965]: <info> (wlan0): device state change: need-auth -> prepare (reason 'none') [60 40 0]
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 2 of 5 (Device Configure) scheduled...
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 1 of 5 (Device Prepare) complete.
May 25 23:59:56 lucy dbus[847]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 2 of 5 (Device Configure) starting...
May 25 23:59:56 lucy NetworkManager[965]: <info> (wlan0): device state change: prepare -> config (reason 'none') [40 50 0]
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0/wireless): connection 'SevenSky' has security, and secrets exist.  No new secrets needed.
May 25 23:59:56 lucy NetworkManager[965]: <info> Config: added 'ssid' value 'SevenSky'
May 25 23:59:56 lucy NetworkManager[965]: <info> Config: added 'scan_ssid' value '1'
May 25 23:59:56 lucy NetworkManager[965]: <info> Config: added 'key_mgmt' value 'WPA-PSK'
May 25 23:59:56 lucy NetworkManager[965]: <info> Config: added 'psk' value '<omitted>'
May 25 23:59:56 lucy NetworkManager[965]: <info> Activation (wlan0) Stage 2 of 5 (Device Configure) complete.
May 25 23:59:56 lucy NetworkManager[965]: <info> Config: set interface ap_scan to 1
May 25 23:59:57 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:57 lucy kernel: [ 2262.806967] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 25 23:59:58 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:58 lucy kernel: [ 2263.808233] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 25 23:59:59 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 25 23:59:59 lucy kernel: [ 2264.809624] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:00 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:00 lucy kernel: [ 2265.810050] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:01 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:01 lucy kernel: [ 2266.811365] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:02 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:02 lucy kernel: [ 2267.811743] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:03 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:03 lucy kernel: [ 2268.812162] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:04 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:04 lucy kernel: [ 2269.813500] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:05 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:05 lucy kernel: [ 2270.814903] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:06 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:06 lucy kernel: [ 2271.816408] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:07 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:07 lucy kernel: [ 2272.817924] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:08 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:08 lucy kernel: [ 2273.819176] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:09 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:09 lucy kernel: [ 2274.820158] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:10 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:10 lucy kernel: [ 2275.821583] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:11 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:11 lucy kernel: [ 2276.823676] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:12 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:12 lucy kernel: [ 2277.823998] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:13 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:13 lucy kernel: [ 2278.825284] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:14 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:14 lucy kernel: [ 2279.826337] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:15 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:15 lucy kernel: [ 2280.827718] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:16 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:16 lucy kernel: [ 2281.828259] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:17 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:17 lucy kernel: [ 2282.828774] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:18 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:18 lucy kernel: [ 2283.830035] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:19 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:19 lucy kernel: [ 2284.831390] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:20 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:20 lucy kernel: [ 2285.832739] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:21 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:21 lucy kernel: [ 2286.833996] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:22 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:22 lucy kernel: [ 2287.834301] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:23 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:23 lucy kernel: [ 2288.835541] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:24 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:24 lucy kernel: [ 2289.836272] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:25 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:25 lucy kernel: [ 2290.837523] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:26 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:26 lucy kernel: [ 2291.838803] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:27 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:27 lucy kernel: [ 2292.840090] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:28 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:28 lucy kernel: [ 2293.841503] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:29 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:29 lucy kernel: [ 2294.842969] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:30 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:30 lucy kernel: [ 2295.844436] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:31 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:31 lucy kernel: [ 2296.845939] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:32 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:32 lucy kernel: [ 2297.846465] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:33 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:33 lucy kernel: [ 2298.847887] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:34 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:34 lucy kernel: [ 2299.849180] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:35 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:35 lucy kernel: [ 2300.850458] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:36 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:36 lucy kernel: [ 2301.851732] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:37 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:37 lucy kernel: [ 2302.852165] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:38 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:38 lucy kernel: [ 2303.853434] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:39 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:39 lucy kernel: [ 2304.853801] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:40 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:40 lucy kernel: [ 2305.855183] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:41 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:41 lucy kernel: [ 2306.856229] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:42 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:42 lucy kernel: [ 2307.856746] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:43 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:43 lucy kernel: [ 2308.858235] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:44 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:44 lucy kernel: [ 2309.859707] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:45 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:45 lucy kernel: [ 2310.861130] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:46 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:46 lucy kernel: [ 2311.862470] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:47 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:47 lucy kernel: [ 2312.863727] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:48 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:48 lucy kernel: [ 2313.864164] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:49 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:49 lucy kernel: [ 2314.865525] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:50 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:50 lucy kernel: [ 2315.867025] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:51 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:51 lucy kernel: [ 2316.868149] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:52 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:52 lucy kernel: [ 2317.868459] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:53 lucy wpa_supplicant[1062]: Failed to initiate AP scan.
May 26 00:00:53 lucy kernel: [ 2318.869772] iwlwifi 0000:03:00.0: Request scan called when driver not ready.
May 26 00:00:54 lucy wpa_supplicant[1062]: Failed to initiate AP scan.

^ permalink raw reply

* Re: [PATCH] B43: Handle DMA RX descriptor underrun
From: Larry Finger @ 2013-05-25 20:37 UTC (permalink / raw)
  To: Michael Büsch
  Cc: Hauke Mehrtens, Thommy Jakobsson, John W. Linville,
	Rafał Miłecki, linux-wireless, b43-dev, piotras
In-Reply-To: <20130525214223.4e69a772@milhouse>

On 05/25/2013 02:42 PM, Michael Büsch wrote:
> On Sat, 25 May 2013 21:37:32 +0200
> Hauke Mehrtens <hauke@hauke-m.de> wrote:
>
>> On 05/25/2013 09:02 PM, Thommy Jakobsson wrote:
>>>
>>>
>>> On Fri, 24 May 2013, John W. Linville wrote:
>>>
>>>> Ping?  Should I drop this one?
>>>>
>>> Still working great on my device, so from that I think we should go for
>>> it. But it would be great if Rafal (or someone) tested it on some other
>>> hardware as well.
>>>
>>> //Thommy
>>
>> This is included in OpenWrt for ~4 weeks now and I haven't read of
>> anybody complaining about any new problems introduced by this patch or
>> something which looks like the DMA under run.
>> I am also for adding this to the kernel.
>
> I'm probably missing something, but isn't this patch already in Linus' tree?
> It's in stable review after all.

The patch is in wireless-testing with John's s-o-b, and in the mainline tree 
with the same annotation.

It has been working OK here, but my devices did not show underrun.

Larry



^ permalink raw reply

* Re: [PATCH] B43: Handle DMA RX descriptor underrun
From: Michael Büsch @ 2013-05-25 19:42 UTC (permalink / raw)
  To: Hauke Mehrtens
  Cc: Thommy Jakobsson, John W. Linville, Rafał Miłecki,
	linux-wireless, b43-dev, piotras, Larry.Finger
In-Reply-To: <51A112FC.8060100@hauke-m.de>

[-- Attachment #1: Type: text/plain, Size: 813 bytes --]

On Sat, 25 May 2013 21:37:32 +0200
Hauke Mehrtens <hauke@hauke-m.de> wrote:

> On 05/25/2013 09:02 PM, Thommy Jakobsson wrote:
> > 
> > 
> > On Fri, 24 May 2013, John W. Linville wrote:
> > 
> >> Ping?  Should I drop this one?
> >>
> > Still working great on my device, so from that I think we should go for 
> > it. But it would be great if Rafal (or someone) tested it on some other 
> > hardware as well. 
> > 
> > //Thommy
> 
> This is included in OpenWrt for ~4 weeks now and I haven't read of
> anybody complaining about any new problems introduced by this patch or
> something which looks like the DMA under run.
> I am also for adding this to the kernel.

I'm probably missing something, but isn't this patch already in Linus' tree?
It's in stable review after all.

-- 
Michael

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply

* Re: [PATCH] B43: Handle DMA RX descriptor underrun
From: Hauke Mehrtens @ 2013-05-25 19:37 UTC (permalink / raw)
  To: Thommy Jakobsson
  Cc: John W. Linville, Rafał Miłecki, linux-wireless,
	b43-dev, m, piotras, Larry.Finger
In-Reply-To: <alpine.DEB.2.02.1305252058060.1282@kelly.ryd.net>

On 05/25/2013 09:02 PM, Thommy Jakobsson wrote:
> 
> 
> On Fri, 24 May 2013, John W. Linville wrote:
> 
>> Ping?  Should I drop this one?
>>
> Still working great on my device, so from that I think we should go for 
> it. But it would be great if Rafal (or someone) tested it on some other 
> hardware as well. 
> 
> //Thommy

This is included in OpenWrt for ~4 weeks now and I haven't read of
anybody complaining about any new problems introduced by this patch or
something which looks like the DMA under run.
I am also for adding this to the kernel.

Hauke


^ permalink raw reply

* Re: [PATCH] B43: Handle DMA RX descriptor underrun
From: Thommy Jakobsson @ 2013-05-25 19:02 UTC (permalink / raw)
  To: John W. Linville
  Cc: Rafał Miłecki, linux-wireless, b43-dev, m, piotras,
	Larry.Finger, Thommy Jakobsson
In-Reply-To: <20130524164922.GA2175@tuxdriver.com>



On Fri, 24 May 2013, John W. Linville wrote:

> Ping?  Should I drop this one?
> 
Still working great on my device, so from that I think we should go for 
it. But it would be great if Rafal (or someone) tested it on some other 
hardware as well. 

//Thommy

^ permalink raw reply

* RE: [RFC 2/2] cfg80211: separate internal SME implementation
From: Kondratiev, Vladimir @ 2013-05-25 15:33 UTC (permalink / raw)
  To: Johannes Berg, linux-wireless@vger.kernel.org; +Cc: qca_vkondrat
In-Reply-To: <1369433975.13623.19.camel@johannes>

Hi Vladimir,

This patch breaks wil6210 compilation. You shouldn't be using the
cfg80211 internal state, even if it's available to drivers for technical
reasons. Please remove the usage of wdev->sme_state from your driver,
I'd like to merge this patch that changes the internal SME
implementation in cfg80211.

johannes

Hi Johannes,

I prepared the patch, need few days to test it and I'll submit.

I have conceptual question regarding wdev private data.
Currently, drivers end up duplicating wdev's data internally. I'd say it is better to track, for example,
SME connection state once. Maybe, it is worth to provide functions to access wdev's data?

Thanks, Vladimir

^ permalink raw reply

* P2P Device support: how to deal with p2p_no_group_iface option
From: Arend van Spriel @ 2013-05-25 11:23 UTC (permalink / raw)
  To: Jouni Malinen
  Cc: Johannes Berg, hostap@lists.shmoo.com, linux-wireless,
	Jithu Jance

Hi Jouni,

I looked into issues around hwsim p2p tests and got all but one p2p test 
passing now (test_autogo_tdls). I had to remove the p2p_no_group_iface 
option from the p2px.conf files, because otherwise it tries to change 
the P2P management interface into a P2P group interface. When using 
P2P_DEVICE and P2P management interface this is not allowed by 
mac80211_hwsim. Also for brcmfmac the P2P_DEVICE interface is dedicated 
and can only be added/deleted, but not changed. Not sure if that is true 
for iwlmvm as well.

So I would like to discuss how to deal with the p2p_no_group_iface 
option. As P2P_DEVICE is a new concept the name of the option may no 
longer match what it intends. Is the option to force all P2P operations 
to be done on a single interface, ie. wlan0 (or whatever is specified on 
the command line) and no P2P_DEVICE is to be created. Or should it 
change the interface from the command line as P2P group interface.

If we can make a decision here I can finalize the P2P_DEVICE support 
changes.

Regards,
Arend


^ permalink raw reply

* [v3.10-rc2] iwlwifi regression
From: Jörg Otte @ 2013-05-25  9:09 UTC (permalink / raw)
  To: linux-wireless; +Cc: Linux Kernel Mailing List, Johannes Berg

If iwlwifi/iwldvm are built into the kernel (no loadable modules)
following error is written to console and syslog since v3.10-rc:

iwlwifi 0000:08:00.0: failed to load module iwldvm (error -38), is
dynamic loading enabled?

reverting
commit 1618b2b02a3a0ee7a6863fed4b0d22e697e7e97c
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Apr 4 10:35:23 2013 +0200
    iwlwifi: print warning on request_module failure

fixes the problem for me.

Jörg

I'm not subscribed,please CC me in answeres

^ permalink raw reply

* [RFT/RFC 5/4] iwlegacy: unblock queues on passive channel if any frame receive
From: Stanislaw Gruszka @ 2013-05-25  8:55 UTC (permalink / raw)
  To: linux-wireless; +Cc: Jake Edge, Johannes Berg
In-Reply-To: <1369311660-15378-5-git-send-email-sgruszka@redhat.com>

Currently we unblock queues (when blocked on passive channel) only if
beacon with our bssid will be received. Change that to any frame, since
firmware should allow to transmit frames on passive channel when it
receives any frame with valid CRC sum.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
 drivers/net/wireless/iwlegacy/4965-mac.c | 13 ++++++-------
 drivers/net/wireless/iwlegacy/common.c   | 11 ++++++-----
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/net/wireless/iwlegacy/4965-mac.c b/drivers/net/wireless/iwlegacy/4965-mac.c
index b083502..2c77431 100644
--- a/drivers/net/wireless/iwlegacy/4965-mac.c
+++ b/drivers/net/wireless/iwlegacy/4965-mac.c
@@ -588,11 +588,9 @@ il4965_pass_packet_to_mac80211(struct il_priv *il, struct ieee80211_hdr *hdr,
 		return;
 	}
 
-	if (unlikely(test_bit(IL_STOP_REASON_PASSIVE, &il->stop_reason)) &&
-	    ieee80211_is_beacon(fc) &&
-	    ether_addr_equal(hdr->addr3, il->active.bssid_addr)) {
+	if (unlikely(test_bit(IL_STOP_REASON_PASSIVE, &il->stop_reason))) {
 		il_wake_queues_by_reason(il, IL_STOP_REASON_PASSIVE);
-		D_INFO("Woke queues - beacon received on passive channel\n");
+		D_INFO("Woke queues - frame received on passive channel\n");
 	}
 
 	/* In case of HW accelerated crypto and bad decryption, drop */
@@ -2815,9 +2813,10 @@ il4965_hdl_tx(struct il_priv *il, struct il_rx_buf *rxb)
 
 	/*
 	 * Firmware will not transmit frame on passive channel, if it not yet
-	 * received beacon frame on that channel. When this error happen, we
-	 * have to wait until firmware will unblock itself i.e. when we note
-	 * received beacon (see il4965_pass_packet_to_mac80211).
+	 * received some valid frame on that channel. When this error happen
+	 * we have to wait until firmware will unblock itself i.e. when we
+	 * note received beacon or other frame. We unblock queues in
+	 * il4965_pass_packet_to_mac80211 or in il_mac_bss_info_changed.
 	 */
 	if (unlikely(status == TX_STATUS_FAIL_PASSIVE_NO_RX) &&
 	    il->iw_mode == NL80211_IFTYPE_STATION) {
diff --git a/drivers/net/wireless/iwlegacy/common.c b/drivers/net/wireless/iwlegacy/common.c
index 9360d1f..3195aad 100644
--- a/drivers/net/wireless/iwlegacy/common.c
+++ b/drivers/net/wireless/iwlegacy/common.c
@@ -5307,11 +5307,12 @@ il_mac_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 		D_MAC80211("BSSID %pM\n", bss_conf->bssid);
 
 		/*
-		 * On passive channel we wait with blocked queues for a beacon.
-		 * If beacon will not be received (what is very unlikely, but
-		 * theoretically possible), mac80211 associate procedure will
-		 * time out and mac80211 will call us with NULL bssid. We have
-		 * to unblock queues on such condition.
+		 * On passive channel we wait with blocked queues to see if
+		 * there is traffic on that channel. If no frame will be
+		 * received (what is very unlikely since scan detects AP on
+		 * that channel, but theoretically possible), mac80211 associate
+		 * procedure will time out and mac80211 will call us with NULL
+		 * bssid. We have to unblock queues on such condition.
 		 */
 		if (is_zero_ether_addr(bss_conf->bssid))
 			il_wake_queues_by_reason(il, IL_STOP_REASON_PASSIVE);
-- 
1.7.11.7


^ permalink raw reply related

* Re: [RFT/RFC 0/4] iwlegacy: workaround for firmware frame tx rejection
From: Stanislaw Gruszka @ 2013-05-25  8:53 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless, Jake Edge
In-Reply-To: <1369427208.8290.35.camel@jlt4.sipsolutions.net>

On Fri, May 24, 2013 at 10:26:48PM +0200, Johannes Berg wrote:
> On Thu, 2013-05-23 at 14:20 +0200, Stanislaw Gruszka wrote:
> > Jake, please test this set and check if it not cause association
> > problems you reported earlier this month.
> > 
> > Please apply it together with this mac80211 patch:
> > http://marc.info/?l=linux-wireless&m=136879090123023&w=2 
> > which I already posted and is queued to upstream. Not having
> > it may cause troubles and influence negatively this set test.
> > 
> > Johannes, is need to check beacon bssid or even if rx frame
> > is a beacon to unblock queues? I think if we receive any frame
> > (not necessary beacon or our bssid beacon) on passive channel,
> > that mean we can use that channel. But that depend how firmware
> > is implemented, if firmware require our bssid beacon to unblock
> > channel, driver of course need that too.
> 
> I _think_ any frame with good CRC will do, but I'm not entirely sure for
> 3945/4965.

I prefer to unblock queues on any frame, as this allow to start
operating quickly.  Let's see if this will also work on Jake environment,
I'll add patch 5/4 which implement that.

Stanislaw

^ permalink raw reply

* Re: [PATCH 3/3] {nl,mac,cfg}80211: Allow user to configure basic rates for mesh
From: Johannes Berg @ 2013-05-25  8:20 UTC (permalink / raw)
  To: Ashok Nagarajan; +Cc: linux-wireless, John Linville, devel
In-Reply-To: <CACcxo+pWnCFW3wvdjhHZvhb065Trup1KL=8fj7bbBhC5m4evqQ@mail.gmail.com>


> > I think you should consider allowing this attribute only if the channel
> > is also specified (NL80211_ATTR_WIPHY_FREQ, parsed below), and not make
> > it nested with rates for both bands but just the selected band.
> >
> Yes, I think by this approach, we eliminate the need for the user to
> provide rates for both bands and also not require to have a per-band
> for basic_rates.
> 
> Said that, I am wondering why give mcast_rate for both bands, but
> basic_rates only for one band?

Heh, good question. I think it was probably copied from IBSS where you
can pick another channel? Doesn't make all that much sense for mesh I
guess, unless MBSS channel switch could cause us to use another channel?
But then presumably you should follow the basic rates from the STA
initiating the switch, or something, since mesh networks are only
compatible with the same basic rates, right?

johannes


^ permalink raw reply

* Re: [RFT/RFC 0/4] iwlegacy: workaround for firmware frame tx rejection
From: Stanislaw Gruszka @ 2013-05-25  6:49 UTC (permalink / raw)
  To: Jake Edge; +Cc: linux-wireless, Johannes Berg
In-Reply-To: <20130524171846.54f3d0be@chukar.edge2.net>

On Fri, May 24, 2013 at 05:18:46PM -0600, Jake Edge wrote:
> On Thu, 23 May 2013 14:20:56 +0200 Stanislaw Gruszka wrote:
> > Jake, please test this set and check if it not cause association
> > problems you reported earlier this month.
> 
> I won't be able to get to this for 10 days or so ... I just got to
> Japan, so the AP in question is thousands of miles east :)

No problem, it doesn't have to be fast. I plan to post patches to
-next (i.e. 3.11), since we have simpler workaround already applied.

Thanks
Stanislaw 

^ permalink raw reply

* Re: Mobile Broadband Interface Model (MBIM) support?
From: Dan Williams @ 2013-05-25  0:11 UTC (permalink / raw)
  To: Sarah Sharp
  Cc: linux-wireless, netdev, linux-usb, dcbw, Ismail, Rahman,
	Wallick, Stephanie S
In-Reply-To: <20130524181051.GB15788@xanatos>

On Fri, 2013-05-24 at 11:10 -0700, Sarah Sharp wrote:
> Ccing Dan Williams, since Johannes Berg mentioned on IRC that Dan might
> know the status of MBIM support.

As Bjorn mentioned, libmbim just got a 1.0 release, and ModemManager
0.7.x (git master, basically) has support for MBIM devices via libmbim.
0.7.x will turn into an official 0.8 release Real Soon Now; it's already
built for Fedora 20, though we don't have libmbim capability in F20
quite yet.

Dan

> On Fri, May 24, 2013 at 10:09:15AM -0700, Sarah Sharp wrote:
> > Do we have support for the new extensions for USB communication devices
> > that use the Mobile Broadband Interface Model (MBIM) spec?
> > 
> > http://www.usb.org/developers/devclass_docs/MBIM10Errata1.zip
> > 
> > The spec was released pretty recently, which is why I'm asking on the
> > mailing lists, rather than digging around the kernel tree for a driver.
> > 
> > Sarah Sharp
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



^ permalink raw reply

* [PATCH 14/14] cw1200: v7: Kbuild integration and maintainers entry
From: Solomon Peachy @ 2013-05-25  0:04 UTC (permalink / raw)
  To: linux-wireless; +Cc: Solomon Peachy
In-Reply-To: <1369440291-8961-1-git-send-email-pizza@shaftnet.org>

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
---
 MAINTAINERS                          |  5 ++++
 drivers/net/wireless/Kconfig         |  1 +
 drivers/net/wireless/Makefile        |  3 +++
 drivers/net/wireless/cw1200/Kconfig  | 46 ++++++++++++++++++++++++++++++++++++
 drivers/net/wireless/cw1200/Makefile | 25 ++++++++++++++++++++
 5 files changed, 80 insertions(+)
 create mode 100644 drivers/net/wireless/cw1200/Kconfig
 create mode 100644 drivers/net/wireless/cw1200/Makefile

diff --git a/MAINTAINERS b/MAINTAINERS
index b645a3d..0ba85a2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2299,6 +2299,11 @@ M:	Jaya Kumar <jayakumar.alsa@gmail.com>
 S:	Maintained
 F:	sound/pci/cs5535audio/
 
+CW1200 WLAN driver
+M:     Solomon Peachy <pizza@shaftnet.org>
+S:     Maintained
+F:     drivers/net/wireless/cw1200/
+
 CX18 VIDEO4LINUX DRIVER
 M:	Andy Walls <awalls@md.metrocast.net>
 L:	ivtv-devel@ivtvdriver.org (moderated for non-subscribers)
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
index f8f0156..200020e 100644
--- a/drivers/net/wireless/Kconfig
+++ b/drivers/net/wireless/Kconfig
@@ -280,5 +280,6 @@ source "drivers/net/wireless/rtlwifi/Kconfig"
 source "drivers/net/wireless/ti/Kconfig"
 source "drivers/net/wireless/zd1211rw/Kconfig"
 source "drivers/net/wireless/mwifiex/Kconfig"
+source "drivers/net/wireless/cw1200/Kconfig"
 
 endif # WLAN
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
index 67156ef..56532fa 100644
--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
@@ -57,3 +57,6 @@ obj-$(CONFIG_MWIFIEX)	+= mwifiex/
 
 obj-$(CONFIG_BRCMFMAC)	+= brcm80211/
 obj-$(CONFIG_BRCMSMAC)	+= brcm80211/
+
+obj-$(CONFIG_CW1200)	+= cw1200/
+
diff --git a/drivers/net/wireless/cw1200/Kconfig b/drivers/net/wireless/cw1200/Kconfig
new file mode 100644
index 0000000..13e3611
--- /dev/null
+++ b/drivers/net/wireless/cw1200/Kconfig
@@ -0,0 +1,46 @@
+config CW1200
+	tristate "CW1200 WLAN support"
+	depends on MAC80211 && CFG80211
+	help
+	  This is a driver for the ST-E CW1100 & CW1200 WLAN chipsets.
+	  This option just enables the driver core, see below for
+	  specific bus support.
+
+if CW1200
+
+config CW1200_WLAN_SDIO
+	tristate "Support SDIO platforms"
+	depends on CW1200 && MMC
+	help
+	  Enable support for the CW1200 connected via an SDIO bus.
+
+config CW1200_WLAN_SPI
+	tristate "Support SPI platforms"
+	depends on CW1200 && SPI
+	help
+	  Enables support for the CW1200 connected via a SPI bus.
+
+config CW1200_WLAN_SAGRAD
+	tristate "Support Sagrad SG901-1091/1098 modules"
+	depends on CW1200_WLAN_SDIO
+	help
+	  This provides the platform data glue to support the
+	  Sagrad SG901-1091/1098 modules in their standard SDIO EVK.
+	  It also includes example SPI platform data.
+
+menu "Driver debug features"
+	depends on CW1200 && DEBUG_FS
+
+config CW1200_ETF
+	bool "Enable CW1200 Engineering Test Framework hooks"
+	help
+	  If you don't know what this is, just say N.
+
+config CW1200_ITP
+	bool "Enable ITP access"
+	help
+	  If you don't know what this is, just say N.
+
+endmenu
+
+endif
diff --git a/drivers/net/wireless/cw1200/Makefile b/drivers/net/wireless/cw1200/Makefile
new file mode 100644
index 0000000..a92a87d
--- /dev/null
+++ b/drivers/net/wireless/cw1200/Makefile
@@ -0,0 +1,25 @@
+cw1200_core-y := \
+		fwio.o \
+		txrx.o \
+		main.o \
+		queue.o \
+		hwio.o \
+		bh.o \
+		wsm.o \
+		sta.o \
+		scan.o \
+		pm.o \
+		debug.o
+cw1200_core-$(CONFIG_CW1200_ITP)	+= itp.o
+
+# CFLAGS_sta.o += -DDEBUG
+
+cw1200_wlan_sdio-y := cw1200_sdio.o
+cw1200_wlan_spi-y := cw1200_spi.o
+cw1200_wlan_sagrad-y := cw1200_sagrad.o
+
+obj-$(CONFIG_CW1200) += cw1200_core.o
+obj-$(CONFIG_CW1200_WLAN_SDIO) += cw1200_wlan_sdio.o
+obj-$(CONFIG_CW1200_WLAN_SPI) += cw1200_wlan_spi.o
+obj-$(CONFIG_CW1200_WLAN_SAGRAD) += cw1200_wlan_sagrad.o
+
-- 
1.8.1.4


^ permalink raw reply related

* [PATCH 13/14] cw1200: v7: Module containing platform data for Sagrad SG901-1091/1098 devices
From: Solomon Peachy @ 2013-05-25  0:04 UTC (permalink / raw)
  To: linux-wireless; +Cc: Solomon Peachy
In-Reply-To: <1369440291-8961-1-git-send-email-pizza@shaftnet.org>

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
---
 drivers/net/wireless/cw1200/cw1200_sagrad.c | 145 ++++++++++++++++++++++++++++
 1 file changed, 145 insertions(+)
 create mode 100644 drivers/net/wireless/cw1200/cw1200_sagrad.c

diff --git a/drivers/net/wireless/cw1200/cw1200_sagrad.c b/drivers/net/wireless/cw1200/cw1200_sagrad.c
new file mode 100644
index 0000000..a5ada0e
--- /dev/null
+++ b/drivers/net/wireless/cw1200/cw1200_sagrad.c
@@ -0,0 +1,145 @@
+/*
+ * Platform glue data for ST-Ericsson CW1200 driver
+ *
+ * Copyright (c) 2013, Sagrad, Inc
+ * Author: Solomon Peachy <speachy@sagrad.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/module.h>
+#include <linux/cw1200_platform.h>
+
+MODULE_AUTHOR("Solomon Peachy <speachy@sagrad.com>");
+MODULE_DESCRIPTION("ST-Ericsson CW1200 Platform glue driver");
+MODULE_LICENSE("GPL");
+
+/* Define just one of these.  Feel free to customize as needed */
+#define SAGRAD_1091_1098_EVK_SDIO
+/* #define SAGRAD_1091_1098_EVK_SPI */
+
+#ifdef SAGRAD_1091_1098_EVK_SDIO
+#if 0
+static struct resource cw1200_href_resources[] = {
+	{
+		.start = 215,  /* fix me as appropriate */
+		.end = 215,    /* ditto */
+		.flags = IORESOURCE_IO,
+		.name = "cw1200_wlan_reset",
+	},
+	{
+		.start = 216,  /* fix me as appropriate */
+		.end = 216,    /* ditto */
+		.flags = IORESOURCE_IO,
+		.name = "cw1200_wlan_powerup",
+	},
+	{
+		.start = NOMADIK_GPIO_TO_IRQ(216), /* fix me as appropriate */
+		.end = NOMADIK_GPIO_TO_IRQ(216),   /* ditto */
+		.flags = IORESOURCE_IRQ,
+		.name = "cw1200_wlan_irq",
+	},
+};
+#endif
+
+static int cw1200_power_ctrl(const struct cw1200_platform_data_sdio *pdata,
+			     bool enable)
+{
+	/* Control 3v3 and 1v8 to hardware as appropriate */
+	/* Note this is not needed if it's controlled elsewhere or always on */
+
+	/* May require delay for power to stabilize */
+	return 0;
+}
+
+static int cw1200_clk_ctrl(const struct cw1200_platform_data_sdio *pdata,
+			   bool enable)
+{
+	/* Turn CLK_32K off and on as appropriate. */
+	/* Note this is not needed if it's always on */
+
+	/* May require delay for clock to stabilize */
+	return 0;
+}
+
+static struct cw1200_platform_data_sdio cw1200_platform_data = {
+	.ref_clk = 38400,
+	.have_5ghz = false,
+#if 0
+	.reset = &cw1200_href_resources[0],
+	.powerup = &cw1200_href_resources[1],
+	.irq = &cw1200_href_resources[2],
+#endif
+	.power_ctrl = cw1200_power_ctrl,
+	.clk_ctrl = cw1200_clk_ctrl,
+/*	.macaddr = ??? */
+	.sdd_file = "sdd_sagrad_1091_1098.bin",
+};
+#endif
+
+#ifdef SAGRAD_1091_1098_EVK_SPI
+/* Note that this is an example of integrating into your board support file */
+static struct resource cw1200_href_resources[] = {
+	{
+		.start = GPIO_RF_RESET,
+		.end = GPIO_RF_RESET,
+		.flags = IORESOURCE_IO,
+		.name = "cw1200_wlan_reset",
+	},
+	{
+		.start = GPIO_RF_POWERUP,
+		.end = GPIO_RF_POWERUP,
+		.flags = IORESOURCE_IO,
+		.name = "cw1200_wlan_powerup",
+	},
+};
+
+static int cw1200_power_ctrl(const struct cw1200_platform_data_spi *pdata,
+			     bool enable)
+{
+	/* Control 3v3 and 1v8 to hardware as appropriate */
+	/* Note this is not needed if it's controlled elsewhere or always on */
+
+	/* May require delay for power to stabilize */
+	return 0;
+}
+static int cw1200_clk_ctrl(const struct cw1200_platform_data_spi *pdata,
+			   bool enable)
+{
+	/* Turn CLK_32K off and on as appropriate. */
+	/* Note this is not needed if it's always on */
+
+	/* May require delay for clock to stabilize */
+	return 0;
+}
+
+static struct cw1200_platform_data_spi cw1200_platform_data = {
+	.ref_clk = 38400,
+	.spi_bits_per_word = 16,
+	.reset = &cw1200_href_resources[0],
+	.powerup = &cw1200_href_resources[1],
+	.power_ctrl = cw1200_power_ctrl,
+	.clk_ctrl = cw1200_clk_ctrl,
+/*	.macaddr = ??? */
+	.sdd_file = "sdd_sagrad_1091_1098.bin",
+};
+static struct spi_board_info myboard_spi_devices[] __initdata = {
+	{
+		.modalias = "cw1200_wlan_spi",
+		.max_speed_hz = 10000000, /* 52MHz Max */
+		.bus_num = 0,
+		.irq = WIFI_IRQ,
+		.platform_data = &cw1200_platform_data,
+		.chip_select = 0,
+	},
+};
+#endif
+
+
+const void *cw1200_get_platform_data(void)
+{
+	return &cw1200_platform_data;
+}
+EXPORT_SYMBOL_GPL(cw1200_get_platform_data);
-- 
1.8.1.4


^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox