aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/driver-ops.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-06-10 04:21:48 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-14 15:39:28 -0400
commitcfcdbde35e2b621cf56bedc38a3a81e8c28addb9 (patch)
treecd0664681dc4629f7ce9a3319868eebb005060ff /net/mac80211/driver-ops.h
parent83a5cbf73a13d0c8be019b22afec4407e4285aed (diff)
mac80211: change TX aggregation locking
To prepare for allowing drivers to sleep in ampdu_action, change the locking in the TX aggregation code to use the mutex the RX part already uses. The spinlock is still necessary around some code to avoid races with TX, but now we can also synchronize_net() to avoid getting an inconsistent sequence number. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/driver-ops.h')
-rw-r--r--net/mac80211/driver-ops.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index e5e7ef175ca2..7e86c6f89be9 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -349,6 +349,9 @@ static inline int drv_ampdu_action(struct ieee80211_local *local,
349 u16 *ssn) 349 u16 *ssn)
350{ 350{
351 int ret = -EOPNOTSUPP; 351 int ret = -EOPNOTSUPP;
352
353 might_sleep();
354
352 local_bh_disable(); 355 local_bh_disable();
353 if (local->ops->ampdu_action) 356 if (local->ops->ampdu_action)
354 ret = local->ops->ampdu_action(&local->hw, &sdata->vif, action, 357 ret = local->ops->ampdu_action(&local->hw, &sdata->vif, action,