iwlagn: fix scan complete processing
authorJohannes Berg <johannes.berg@intel.com>
Thu, 22 Sep 2011 22:15:00 +0000 (15:15 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 27 Sep 2011 18:34:09 +0000 (14:34 -0400)
commit84b1bec6d716fc8c289e2530cab109a6e097455b
tree91659c23350ca7d93fa383ba9ea439d360140b8b
parenta2fa2462f05115722beb2443d081a72f4f4450ea
iwlagn: fix scan complete processing

When we cancel a scan, the completion runs
only from the workqueue. This can cause the
remain-on-channel scan to fail when another
one was just canceled, because we're still
aborting it.

To fix this, run the completion inline with
the lock still held before returning from
iwl_scan_cancel_timeout().

Also, to avoid the scan complete work from
completing a new scan prematurely, add a
new STATUS_SCAN_COMPLETE bit.

Reported-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Tested-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-scan.c
drivers/net/wireless/iwlwifi/iwl-shared.h