@@ -549,7 +549,9 @@ static void ieee80211_release_reorder_frame(struct ieee80211_hw *hw,
tid_agg_rx->reorder_buf[index] = NULL;
status = IEEE80211_SKB_RXCB(skb);
status->rx_flags |= IEEE80211_RX_DEFERRED_RELEASE;
- skb_queue_tail(&local->rx_skb_queue, skb);
+ spin_lock(&local->rx_skb_queue.lock);
+ __skb_queue_tail(&local->rx_skb_queue, skb);
+ spin_unlock(&local->rx_skb_queue.lock);
no_frame:
tid_agg_rx->head_seq_num = seq_inc(tid_agg_rx->head_seq_num);
@@ -780,7 +782,9 @@ static void ieee80211_rx_reorder_ampdu(struct ieee80211_rx_data *rx)
return;
dont_reorder:
- skb_queue_tail(&local->rx_skb_queue, skb);
+ spin_lock(&local->rx_skb_queue.lock);
+ __skb_queue_tail(&local->rx_skb_queue, skb);
+ spin_unlock(&local->rx_skb_queue.lock);
}
static ieee80211_rx_result debug_noinline