[PATCH] ipw2200: disallow direct scanning when device is down
authorPekka Enberg <penberg@cs.helsinki.fi>
Wed, 16 Nov 2005 19:55:05 +0000 (21:55 +0200)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 17 Nov 2005 16:32:58 +0000 (08:32 -0800)
The function ipw_request_direct_scan() should bail out when the device
is down.  This fixes a lockup caused by wpa_supplicant triggering
ipw_request_direct_scan() while the driver was in a middle of a reset
due to firmware errors.

Thanks to Zilvinas Valinskas for reporting the bug and helping me
debug it.

Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Acked-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/net/wireless/ipw2200.c

index b0d195d1721a6b490107c864043596d0a0768d10..374b682e4d6ac19a130c676ad8deb4dcc711372e 100644 (file)
@@ -8926,6 +8926,10 @@ static int ipw_request_direct_scan(struct ipw_priv *priv, char *essid,
        struct ipw_scan_request_ext scan;
        int err = 0, scan_type;
 
+       if (!(priv->status & STATUS_INIT) ||
+           (priv->status & STATUS_EXIT_PENDING))
+               return 0;
+
        down(&priv->sem);
 
        if (priv->status & STATUS_RF_KILL_MASK) {