Commit d29cecda authored by Johannes Berg's avatar Johannes Berg Committed by David S. Miller
Browse files

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: default avatarReinette Chatre <reinette.chatre@intel.com>
Bug-identified-by: default avatarChristian Lamparter <chunkeey@googlemail.com>
Tested-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8f56874b
...@@ -570,7 +570,7 @@ static void ieee80211_release_reorder_frame(struct ieee80211_hw *hw, ...@@ -570,7 +570,7 @@ static void ieee80211_release_reorder_frame(struct ieee80211_hw *hw,
rate = &sband->bitrates[status->rate_idx]; rate = &sband->bitrates[status->rate_idx];
tid_agg_rx->stored_mpdu_num--; tid_agg_rx->stored_mpdu_num--;
tid_agg_rx->reorder_buf[index] = NULL; tid_agg_rx->reorder_buf[index] = NULL;
skb_queue_tail(frames, skb); __skb_queue_tail(frames, skb);
no_frame: no_frame:
tid_agg_rx->head_seq_num = seq_inc(tid_agg_rx->head_seq_num); tid_agg_rx->head_seq_num = seq_inc(tid_agg_rx->head_seq_num);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment