aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-08-26 13:30:26 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-08-27 13:27:06 -0400
commit8789d459bc5e837bf37d261453df96ef54018d7b (patch)
tree5dbcabe5807de84f9119ab3654b998fd65ac0a40 /net/mac80211/ieee80211_i.h
parent5f33c92d188add2a22ec524c03e0ab097e303d52 (diff)
downloadkernel_samsung_smdk4412-8789d459bc5e837bf37d261453df96ef54018d7b.zip
kernel_samsung_smdk4412-8789d459bc5e837bf37d261453df96ef54018d7b.tar.gz
kernel_samsung_smdk4412-8789d459bc5e837bf37d261453df96ef54018d7b.tar.bz2
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 9e225f0..3171332 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -596,11 +596,17 @@ enum queue_stop_reason {
* determine if we are on the operating channel or not
* @SCAN_OFF_CHANNEL: We're off our operating channel for scanning,
* gets only set in conjunction with SCAN_SW_SCANNING
+ * @SCAN_COMPLETED: Set for our scan work function when the driver reported
+ * that the scan completed.
+ * @SCAN_ABORTED: Set for our scan work function when the driver reported
+ * a scan complete for an aborted scan.
*/
enum {
SCAN_SW_SCANNING,
SCAN_HW_SCANNING,
SCAN_OFF_CHANNEL,
+ SCAN_COMPLETED,
+ SCAN_ABORTED,
};
/**