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>
This commit is contained in:
parent
8f56874bd7
commit
d29cecda03
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue