summaryrefslogtreecommitdiff
path: root/net/mac80211/status.c
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2011-02-18 17:03:41 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-02-18 17:03:41 -0500
commitb67afe7f43afd2f5cd98798993561920c1684c12 (patch)
treee45a0e41c91a1d199fd865b011ed0d25f5497bb9 /net/mac80211/status.c
parentdb28569adc692d9fb8a2d2d8e7ebab7fd5481f10 (diff)
parent28bec7b845e10b68e6ba1ade5de0fc566690fc61 (diff)
Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Conflicts: drivers/bluetooth/ath3k.c drivers/bluetooth/btusb.c
Diffstat (limited to 'net/mac80211/status.c')
-rw-r--r--net/mac80211/status.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c
index ffb0de9bc2f..010a559bd87 100644
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -327,6 +327,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
if (info->flags & IEEE80211_TX_INTFL_NL80211_FRAME_TX) {
struct ieee80211_work *wk;
+ u64 cookie = (unsigned long)skb;
rcu_read_lock();
list_for_each_entry_rcu(wk, &local->work_list, list) {
@@ -338,8 +339,12 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
break;
}
rcu_read_unlock();
+ if (local->hw_roc_skb_for_status == skb) {
+ cookie = local->hw_roc_cookie ^ 2;
+ local->hw_roc_skb_for_status = NULL;
+ }
cfg80211_mgmt_tx_status(
- skb->dev, (unsigned long) skb, skb->data, skb->len,
+ skb->dev, cookie, skb->data, skb->len,
!!(info->flags & IEEE80211_TX_STAT_ACK), GFP_ATOMIC);
}