iwlwifi: fix scan races
authorJohannes Berg <johannes.berg@intel.com>
Wed, 7 Apr 2010 07:21:36 +0000 (00:21 -0700)
committerReinette Chatre <reinette.chatre@intel.com>
Fri, 16 Apr 2010 20:27:10 +0000 (13:27 -0700)
commit88be026490ed89c2ffead81a52531fbac5507e01
tree94f8727e5027a09f24623bd4dcecbbbe1be6922a
parent8b9fce77737ae9983f61ec56cd53f52fb738b2c7
iwlwifi: fix scan races

When an internal scan is started, nothing protects the
is_internal_short_scan variable which can cause crashes,
cf. https://bugzilla.kernel.org/show_bug.cgi?id=15667.
Fix this by making the short scan request use the mutex
for locking, which requires making the request go to a
work struct so that it can sleep.

Reported-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-scan.c