Re: ipw2100: disconnects caused by scan while associated

Zhu Yi <[email protected]> Tue, 20 May 2008 10:35:21 +0800
Newsgroups gmane.linux.drivers.ipw2100.devel
Organization Intel Corp.
Message-ID <[email protected]>
On Mon, 2008-05-19 at 13:10 +0200, Harald Braumann wrote:
> Hi,
> 
> I experience frequent disconnects of the wireless interface. This is
> ipw2100 on an IBM Thinkpad T42p. Kernel version is 2.6.25.
> 
> I've enabled debug output with level 0x1bff7. The log shows the
> following, when a disconnect occurs:
> 
> I isr_status_change Scan detected while associated, with no scan request.  Restarting firmware. 
> I schedule_reset wifi0: Scheduling firmware restart (0s). 
> I isr_status_change Status change: IPW_STATE_SCANNING 
> I isr_indicate_scanning Scanning...
> U ipw2100_reset_adapter : wifi0: Restarting adapter.
> U ipw2100_power_cycle_adapter Power cycling the hardware.
> 
> After that the driver re-initialises, the adapter reconnects, and
> everything works again until the next disconnect.
> 
> Where is this scan request coming from? Userspace (i.e. wpa_supplicant),
> or is it some bug in the firmware?

Can you post the full log?

I wonder if it is a fatal error in the case of a "scan without a
request". Can you try attached patch and see if the problem goes away?

Thanks,
-yi

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

_______________________________________________
ipw2100-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ipw2100-devel
ipw2100-scan-test.patch (text/x-patch, 733 B)
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index 5bf9e00..42d4b67 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -2177,11 +2177,8 @@ static void isr_status_change(struct ipw2100_priv *priv, int status)
 	if (status == IPW_STATE_SCANNING &&
 	    priv->status & STATUS_ASSOCIATED &&
 	    !(priv->status & STATUS_SCANNING)) {
-		IPW_DEBUG_INFO("Scan detected while associated, with "
-			       "no scan request.  Restarting firmware.\n");
-
-		/* Wake up any sleeping jobs */
-		schedule_reset(priv);
+		IPW_DEBUG_INFO("Warning: scan detected while associated, with "
+			       "no scan request.\n");
 	}
 
 	for (i = 0; status_handlers[i].status != -1; i++) {