Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 685b346c authored by Emmanuel Grumbach's avatar Emmanuel Grumbach
Browse files

iwlwifi: pcie: prevent skbs shadowing in iwl_trans_pcie_reclaim



The patch below introduced a variable shadowing. Fix that.

Fixes: 3955525d ("iwlwifi: pcie: buffer packets to avoid overflowing Tx queues")
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 863eac30
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -1062,10 +1062,10 @@ void iwl_trans_pcie_reclaim(struct iwl_trans *trans, int txq_id, int ssn,

	if (iwl_queue_space(&txq->q) > txq->q.low_mark &&
	    test_bit(txq_id, trans_pcie->queue_stopped)) {
		struct sk_buff_head skbs;
		struct sk_buff_head overflow_skbs;

		__skb_queue_head_init(&skbs);
		skb_queue_splice_init(&txq->overflow_q, &skbs);
		__skb_queue_head_init(&overflow_skbs);
		skb_queue_splice_init(&txq->overflow_q, &overflow_skbs);

		/*
		 * This is tricky: we are in reclaim path which is non
@@ -1076,8 +1076,8 @@ void iwl_trans_pcie_reclaim(struct iwl_trans *trans, int txq_id, int ssn,
		 */
		spin_unlock_bh(&txq->lock);

		while (!skb_queue_empty(&skbs)) {
			struct sk_buff *skb = __skb_dequeue(&skbs);
		while (!skb_queue_empty(&overflow_skbs)) {
			struct sk_buff *skb = __skb_dequeue(&overflow_skbs);
			struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
			u8 dev_cmd_idx = IWL_TRANS_FIRST_DRIVER_DATA + 1;
			struct iwl_device_cmd *dev_cmd =