From ae1f3cb2f5382b51e55782f41d889d9fd7899d10 Mon Sep 17 00:00:00 2001 From: Zhu Yi Date: Tue, 30 Mar 2010 09:36:16 +0800 Subject: [PATCH] --- yaml --- r: 194159 b: refs/heads/master c: e65054b64ff6b89380a7f546c9eebf862e679646 h: refs/heads/master i: 194157: 3b56066cf1c58594eba0b66ca85d86a769c7e4ac 194155: 11c9209301630529c6cef51ad370fa9e65d0bbcd 194151: cb561b4da18a2d68115c3d8c61153d424baf2ca6 194143: 83b8e3bf74770342cfb567e03e507ea9a9ea88ad v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/ipw2x00/ipw2200.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index b6b2355dfbdb..e55b7725b9bd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9f01a84e81d10e38daa504348217895fe414a24b +refs/heads/master: e65054b64ff6b89380a7f546c9eebf862e679646 diff --git a/trunk/drivers/net/wireless/ipw2x00/ipw2200.c b/trunk/drivers/net/wireless/ipw2x00/ipw2200.c index fcdbe8b00551..7fa2a3e6ebb0 100644 --- a/trunk/drivers/net/wireless/ipw2x00/ipw2200.c +++ b/trunk/drivers/net/wireless/ipw2x00/ipw2200.c @@ -2348,16 +2348,25 @@ static void ipw_bg_adapter_restart(struct work_struct *work) mutex_unlock(&priv->mutex); } -#define IPW_SCAN_CHECK_WATCHDOG (5 * HZ) +static void ipw_abort_scan(struct ipw_priv *priv); + +#define IPW_SCAN_CHECK_WATCHDOG (5 * HZ) static void ipw_scan_check(void *data) { struct ipw_priv *priv = data; - if (priv->status & (STATUS_SCANNING | STATUS_SCAN_ABORTING)) { + + if (priv->status & STATUS_SCAN_ABORTING) { IPW_DEBUG_SCAN("Scan completion watchdog resetting " "adapter after (%dms).\n", jiffies_to_msecs(IPW_SCAN_CHECK_WATCHDOG)); queue_work(priv->workqueue, &priv->adapter_restart); + } else if (priv->status & STATUS_SCANNING) { + IPW_DEBUG_SCAN("Scan completion watchdog aborting scan " + "after (%dms).\n", + jiffies_to_msecs(IPW_SCAN_CHECK_WATCHDOG)); + ipw_abort_scan(priv); + queue_delayed_work(priv->workqueue, &priv->scan_check, HZ); } }