From acda5c5286bbb99d58f0f07970c9ad5ef6c3844d Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Thu, 10 Jun 2010 10:21:49 +0200 Subject: [PATCH] --- yaml --- r: 203015 b: refs/heads/master c: 85ad181ea78861f69b007599cec9e6ba33fcdf8a h: refs/heads/master i: 203013: a84f03f31b9d76ef21fa8d6746ea6b31ac47bac8 203011: b993ef7d0fed4eb94a5b0a0318e98c20b444d5bf 203007: e8902f6aa99801c79457852fc3bfaec87fb74df0 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/ath/ath9k/main.c | 4 ++++ trunk/include/net/mac80211.h | 2 +- trunk/net/mac80211/driver-ops.h | 3 +-- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 68cbd7031baa..98016e0495f1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cfcdbde35e2b621cf56bedc38a3a81e8c28addb9 +refs/heads/master: 85ad181ea78861f69b007599cec9e6ba33fcdf8a diff --git a/trunk/drivers/net/wireless/ath/ath9k/main.c b/trunk/drivers/net/wireless/ath/ath9k/main.c index b8b76dd2c11e..e1b8456f3d2c 100644 --- a/trunk/drivers/net/wireless/ath/ath9k/main.c +++ b/trunk/drivers/net/wireless/ath/ath9k/main.c @@ -1769,6 +1769,8 @@ static int ath9k_ampdu_action(struct ieee80211_hw *hw, struct ath_softc *sc = aphy->sc; int ret = 0; + local_bh_disable(); + switch (action) { case IEEE80211_AMPDU_RX_START: if (!(sc->sc_flags & SC_OP_RXAGGR)) @@ -1798,6 +1800,8 @@ static int ath9k_ampdu_action(struct ieee80211_hw *hw, "Unknown AMPDU action\n"); } + local_bh_enable(); + return ret; } diff --git a/trunk/include/net/mac80211.h b/trunk/include/net/mac80211.h index 7f9401b3d3c8..bbae3d9b1176 100644 --- a/trunk/include/net/mac80211.h +++ b/trunk/include/net/mac80211.h @@ -1640,7 +1640,7 @@ enum ieee80211_ampdu_mlme_action { * is the first frame we expect to perform the action on. Notice * that TX/RX_STOP can pass NULL for this parameter. * Returns a negative error code on failure. - * The callback must be atomic. + * The callback can sleep. * * @get_survey: Return per-channel survey information * diff --git a/trunk/net/mac80211/driver-ops.h b/trunk/net/mac80211/driver-ops.h index 7e86c6f89be9..a4fcbcc4f458 100644 --- a/trunk/net/mac80211/driver-ops.h +++ b/trunk/net/mac80211/driver-ops.h @@ -352,11 +352,10 @@ static inline int drv_ampdu_action(struct ieee80211_local *local, might_sleep(); - local_bh_disable(); if (local->ops->ampdu_action) ret = local->ops->ampdu_action(&local->hw, &sdata->vif, action, sta, tid, ssn); - local_bh_enable(); + trace_drv_ampdu_action(local, sdata, action, sta, tid, ssn, ret); return ret; }