diff options
author | Olaf Kirch <okir@suse.de> | 2006-01-09 11:00:37 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-01-16 16:51:53 -0500 |
commit | d834a41c966c6a20368fadb59248740935e6fbae (patch) | |
tree | 53163530c274c0f9b7eeed35e0fd9564f48a7192 /drivers/net/wireless/ipw2200.c | |
parent | 0b8d3256a0c1d75bbe8ef5b0de64843e3fc9f47b (diff) |
[PATCH] ipw2200: do not sleep in ipw_request_direct_scan
Drivers should not sleep for very long inside an ioctl -
so return EAGAIN and let wpa_supplicant handle the problem.
Signed-off-by: Olaf Kirch <okir@suse.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ipw2200.c')
-rw-r--r-- | drivers/net/wireless/ipw2200.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index 819be2b6b7df..4c28e332ecc3 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c | |||
@@ -8936,14 +8936,12 @@ static int ipw_request_direct_scan(struct ipw_priv *priv, char *essid, | |||
8936 | IPW_DEBUG_HC("starting request direct scan!\n"); | 8936 | IPW_DEBUG_HC("starting request direct scan!\n"); |
8937 | 8937 | ||
8938 | if (priv->status & (STATUS_SCANNING | STATUS_SCAN_ABORTING)) { | 8938 | if (priv->status & (STATUS_SCANNING | STATUS_SCAN_ABORTING)) { |
8939 | err = wait_event_interruptible(priv->wait_state, | 8939 | /* We should not sleep here; otherwise we will block most |
8940 | !(priv-> | 8940 | * of the system (for instance, we hold rtnl_lock when we |
8941 | status & (STATUS_SCANNING | | 8941 | * get here). |
8942 | STATUS_SCAN_ABORTING))); | 8942 | */ |
8943 | if (err) { | 8943 | err = -EAGAIN; |
8944 | IPW_DEBUG_HC("aborting direct scan"); | 8944 | goto done; |
8945 | goto done; | ||
8946 | } | ||
8947 | } | 8945 | } |
8948 | memset(&scan, 0, sizeof(scan)); | 8946 | memset(&scan, 0, sizeof(scan)); |
8949 | 8947 | ||