Skip to content

Commit

Permalink
wifi: ath11k: Cleanup mac80211 references on failure during tx_complete
Browse files Browse the repository at this point in the history
[ Upstream commit 29d1558 ]

When a function is using functions from mac80211 to free an skb then it
should do it consistently and not switch to the generic dev_kfree_skb_any
(or similar functions). Otherwise (like in the error handlers), mac80211
will will not be aware of the freed skb and thus not clean up related
information in its internal data structures.

Not doing so lead in the past to filled up structure which then prevented
new clients to connect.

Fixes: d5c6515 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
Fixes: 6257c70 ("wifi: ath11k: fix tx status reporting in encap offload mode")
Cc: stable@vger.kernel.org
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230802-ath11k-ack_status_leak-v2-2-c0af729d6229@narfation.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
ecsv authored and gregkh committed Oct 6, 2023
1 parent 1cccd28 commit 3a8ac77
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/net/wireless/ath/ath11k/dp_tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ ath11k_dp_tx_htt_tx_complete_buf(struct ath11k_base *ab,
dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);

if (!skb_cb->vif) {
dev_kfree_skb_any(msdu);
ieee80211_free_txskb(ar->hw, msdu);
return;
}

Expand Down Expand Up @@ -566,12 +566,12 @@ static void ath11k_dp_tx_complete_msdu(struct ath11k *ar,
dma_unmap_single(ab->dev, skb_cb->paddr, msdu->len, DMA_TO_DEVICE);

if (unlikely(!rcu_access_pointer(ab->pdevs_active[ar->pdev_idx]))) {
dev_kfree_skb_any(msdu);
ieee80211_free_txskb(ar->hw, msdu);
return;
}

if (unlikely(!skb_cb->vif)) {
dev_kfree_skb_any(msdu);
ieee80211_free_txskb(ar->hw, msdu);
return;
}

Expand Down

0 comments on commit 3a8ac77

Please sign in to comment.