mac80211: fix reorder buffer release
authorJohannes Berg <[email protected]>
Fri, 4 Dec 2009 22:25:43 +0000 (14:25 -0800)
committerDavid S. Miller <[email protected]>
Fri, 4 Dec 2009 22:25:43 +0000 (14:25 -0800)
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 <[email protected]>
Bug-identified-by: Christian Lamparter <[email protected]>
Tested-by: Reinette Chatre <[email protected]>
Signed-off-by: Johannes Berg <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
net/mac80211/rx.c

index 4ed60ae81b99dd7c6a0142535b81e14a0e2a706d..f237df408378c514e567676eb2272f659f8b3067 100644 (file)
@@ -570,7 +570,7 @@ static void ieee80211_release_reorder_frame(struct ieee80211_hw *hw,
                rate = &sband->bitrates[status->rate_idx];
        tid_agg_rx->stored_mpdu_num--;
        tid_agg_rx->reorder_buf[index] = NULL;
-       skb_queue_tail(frames, skb);
+       __skb_queue_tail(frames, skb);
 
 no_frame:
        tid_agg_rx->head_seq_num = seq_inc(tid_agg_rx->head_seq_num);