aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-08-26 07:30:26 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-08-27 13:27:06 -0400
commit8789d459bc5e837bf37d261453df96ef54018d7b (patch)
tree5dbcabe5807de84f9119ab3654b998fd65ac0a40 /net/mac80211/ieee80211_i.h
parent5f33c92d188add2a22ec524c03e0ab097e303d52 (diff)
mac80211: allow scan to complete from any context
The ieee80211_scan_completed() function was a frequent source of potential deadlocks, since it is called by drivers but may call back into drivers, so drivers had to make sure to call it without any locks held, which frequently lead to more complex code in drivers. Avoid that problem by allowing the function to be called in any context, and queueing the actual work it does. Also update the documentation for it to indicate this. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r--net/mac80211/ieee80211_i.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index 9e225f01497b..31713320258c 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -596,11 +596,17 @@ enum queue_stop_reason {
596 * determine if we are on the operating channel or not 596 * determine if we are on the operating channel or not
597 * @SCAN_OFF_CHANNEL: We're off our operating channel for scanning, 597 * @SCAN_OFF_CHANNEL: We're off our operating channel for scanning,
598 * gets only set in conjunction with SCAN_SW_SCANNING 598 * gets only set in conjunction with SCAN_SW_SCANNING
599 * @SCAN_COMPLETED: Set for our scan work function when the driver reported
600 * that the scan completed.
601 * @SCAN_ABORTED: Set for our scan work function when the driver reported
602 * a scan complete for an aborted scan.
599 */ 603 */
600enum { 604enum {
601 SCAN_SW_SCANNING, 605 SCAN_SW_SCANNING,
602 SCAN_HW_SCANNING, 606 SCAN_HW_SCANNING,
603 SCAN_OFF_CHANNEL, 607 SCAN_OFF_CHANNEL,
608 SCAN_COMPLETED,
609 SCAN_ABORTED,
604}; 610};
605 611
606/** 612/**