Re: REGRESSION: v3.2-rcX: iwlagn refuses to associate with my AP's

From: Johannes Berg
Date: Tue Dec 13 2011 - 13:22:40 EST


Hi Ted,

> The failure to associate with access points happens at work, with
> whatever AP's are in use at the Cambridge Google office. When I tried
> v3.2-rc5 at home, I was able to associate with a consumer-grade NetGear
> AP, although it was flaky --- that is, it completely failed to associate
> initially, but then I tried rebooting and I was eventually able to get
> it to work. At work, I was able to reproduce the problem with a
> v3.2-rc5 and v3.2-rc2 kernel, but the problem did not manifest itself
> with a v3.1 kernel.
>
> One interesting thing is that I'm getting the following WARNING message
> triggering in my dmesg logs:
>
> [ 48.518246] wlan0: deauthenticating from 00:1a:1e:26:2b:30 by local choice (r
> eason=3)
> [ 48.525625] ------------[ cut here ]------------
> [ 48.525653] WARNING: at net/wireless/mlme.c:309 __cfg80211_auth_remove+0xc2/0xcf [cfg80211]()

> This seems to be happening after the failure to associate with the AP,
> so it could be a red herring.

I think this is. It's interesting though that it is deauthenticating --
is there anything in the log before? But since you bisected it to the TX
sync commit, I'd say let's try the below patch. You might have to adjust
the iwl-mac80211.c file to iwl-agn.c, I'm not entirely sure what version
has the moved code.

Please let me know -- this commit is probably the right thing to do
until we get rid of tx_sync completely.

Thanks,
Johannes

--- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-mac80211.c 2011-12-13 09:06:14.000000000 +0100
+++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-mac80211.c 2011-12-13 19:20:24.000000000 +0100
@@ -1014,6 +1014,9 @@ static int iwlagn_mac_tx_sync(struct iee
int ret;
u8 sta_id;

+ if (!vif->p2p)
+ return 0;
+
IWL_DEBUG_MAC80211(priv, "enter\n");
mutex_lock(&priv->shrd->mutex);

@@ -1063,6 +1066,9 @@ static void iwlagn_mac_finish_tx_sync(st
struct iwl_vif_priv *vif_priv = (void *)vif->drv_priv;
struct iwl_rxon_context *ctx = vif_priv->ctx;

+ if (!vif->p2p)
+ return;
+
IWL_DEBUG_MAC80211(priv, "enter\n");
mutex_lock(&priv->shrd->mutex);



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/