Re: [2.6.28-rc2]: iwl4965 doesn't connect / cfg80211 failure

From: reinette chatre
Date: Thu Oct 30 2008 - 13:55:31 EST


On Thu, 2008-10-30 at 10:24 -0700, Mirco Tischler wrote:
> On Wed, 29 Oct 2008 14:18:04 +0800, Zhu Yi wrote:
> > Can you try attached patch?
> >
> > Thanks,
> > -yi
> I did. Didn't solve the problems but here's the output:

That helped us to obtain more information. Could you please try commit
9685e33a2c919c1e95cb7072988fc1e0f0bad3d9 ?

Reproduced here for convenience:

commit 9685e33a2c919c1e95cb7072988fc1e0f0bad3d9
Author: Mohamed Abbas <mohamed.abbas@xxxxxxxxx>
Date: Thu Oct 23 23:48:54 2008 -0700

iwlwifi: clear scanning bits upon failure

In iwl_bg_request_scan function, if we could not send a
scan command it will go to done.
In done it does the right thing to call mac80211 with
scan complete, but the problem is STATUS_SCAN_HW is still
set causing any future scan to fail. Fix by clearing the scanning status
bits if scan fails.

Signed-off-by: Mohamed Abbas <mohamed.abbas@xxxxxxxxx>
Signed-off-by: Reinette Chatre <reinette.chatre@xxxxxxxxx>
Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>

diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index 3379b41..b0abf89 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -834,6 +834,13 @@ static void iwl_bg_request_scan(struct work_struct *data)
return;

done:
+ /* Cannot perform scan. Make sure we clear scanning
+ * bits from status so next scan request can be performed.
+ * If we don't clear scanning status bit here all next scan
+ * will fail
+ */
+ clear_bit(STATUS_SCAN_HW, &priv->status);
+ clear_bit(STATUS_SCANNING, &priv->status);
/* inform mac80211 scan aborted */
queue_work(priv->workqueue, &priv->scan_completed);
mutex_unlock(&priv->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/