Lines 2348-2363
static void ipw_bg_adapter_restart(struct work_struct *work)
Link Here
|
2348 |
mutex_unlock(&priv->mutex); |
2348 |
mutex_unlock(&priv->mutex); |
2349 |
} |
2349 |
} |
2350 |
|
2350 |
|
2351 |
#define IPW_SCAN_CHECK_WATCHDOG (5 * HZ) |
2351 |
static void ipw_abort_scan(struct ipw_priv *priv); |
|
|
2352 |
|
2353 |
#define IPW_SCAN_CHECK_WATCHDOG (5 * HZ) |
2352 |
|
2354 |
|
2353 |
static void ipw_scan_check(void *data) |
2355 |
static void ipw_scan_check(void *data) |
2354 |
{ |
2356 |
{ |
2355 |
struct ipw_priv *priv = data; |
2357 |
struct ipw_priv *priv = data; |
2356 |
if (priv->status & (STATUS_SCANNING | STATUS_SCAN_ABORTING)) { |
2358 |
|
|
|
2359 |
if (priv->status & STATUS_SCAN_ABORTING) { |
2357 |
IPW_DEBUG_SCAN("Scan completion watchdog resetting " |
2360 |
IPW_DEBUG_SCAN("Scan completion watchdog resetting " |
2358 |
"adapter after (%dms).\n", |
2361 |
"adapter after (%dms).\n", |
2359 |
jiffies_to_msecs(IPW_SCAN_CHECK_WATCHDOG)); |
2362 |
jiffies_to_msecs(IPW_SCAN_CHECK_WATCHDOG)); |
2360 |
queue_work(priv->workqueue, &priv->adapter_restart); |
2363 |
queue_work(priv->workqueue, &priv->adapter_restart); |
|
|
2364 |
} else if (priv->status & STATUS_SCANNING) { |
2365 |
IPW_DEBUG_SCAN("Scan completion watchdog aborting scan " |
2366 |
"after (%dms).\n", |
2367 |
jiffies_to_msecs(IPW_SCAN_CHECK_WATCHDOG)); |
2368 |
ipw_abort_scan(priv); |
2369 |
queue_delayed_work(priv->workqueue, &priv->scan_check, HZ); |
2361 |
} |
2370 |
} |
2362 |
} |
2371 |
} |
2363 |
|
2372 |
|