diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-12-04 17:25:43 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-04 17:25:43 -0500 |
commit | d29cecda036f251aee4947f47eea0fe9ed8cc931 (patch) | |
tree | 8d1d44ee7ac8c683fd42d8e6ff2a027b4118dccb /net | |
parent | 8f56874bd7e8bee73ed6a1cf80dcec2753616262 (diff) |
mac80211: fix reorder buffer release
My patch "mac80211: correctly place aMPDU RX reorder code"
uses an skb queue for MPDUs that were released from the
buffer. I intentially didn't initialise and use the skb
queue's spinlock, but in this place forgot that the code
variant that doesn't touch the spinlock is needed.
Thanks to Christian Lamparter for quickly spotting the
bug in the backtrace Reinette reported.
Reported-by: Reinette Chatre <reinette.chatre@intel.com>
Bug-identified-by: Christian Lamparter <chunkeey@googlemail.com>
Tested-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/rx.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 4ed60ae81b9..f237df40837 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -570,7 +570,7 @@ static void ieee80211_release_reorder_frame(struct ieee80211_hw *hw, | |||
570 | rate = &sband->bitrates[status->rate_idx]; | 570 | rate = &sband->bitrates[status->rate_idx]; |
571 | tid_agg_rx->stored_mpdu_num--; | 571 | tid_agg_rx->stored_mpdu_num--; |
572 | tid_agg_rx->reorder_buf[index] = NULL; | 572 | tid_agg_rx->reorder_buf[index] = NULL; |
573 | skb_queue_tail(frames, skb); | 573 | __skb_queue_tail(frames, skb); |
574 | 574 | ||
575 | no_frame: | 575 | no_frame: |
576 | tid_agg_rx->head_seq_num = seq_inc(tid_agg_rx->head_seq_num); | 576 | tid_agg_rx->head_seq_num = seq_inc(tid_agg_rx->head_seq_num); |