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>
        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) {