Commit e5646fe3 authored by Christian 'Ansuel' Marangi's avatar Christian 'Ansuel' Marangi Committed by Kalle Valo
Browse files

ath11k: fix missing skb drop on htc_tx_completion error



On htc_tx_completion error the skb is not dropped. This is wrong since
the completion_handler logic expect the skb to be consumed anyway even
when an error is triggered. Not freeing the skb on error is a memory
leak since the skb won't be freed anywere else. Correctly free the
packet on eid >= ATH11K_HTC_EP_COUNT before returning.

Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.5.0.1-01208-QCAHKSWPL_SILICONZ-1

Fixes: f951380a ("ath11k: Disabling credit flow for WMI path")
Signed-off-by: default avatarChristian 'Ansuel' Marangi <ansuelsmth@gmail.com>
Reviewed-by: default avatarJeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220528142516.20819-2-ansuelsmth@gmail.com
parent 8723750e
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -258,8 +258,10 @@ void ath11k_htc_tx_completion_handler(struct ath11k_base *ab,
	u8 eid;

	eid = ATH11K_SKB_CB(skb)->eid;
	if (eid >= ATH11K_HTC_EP_COUNT)
	if (eid >= ATH11K_HTC_EP_COUNT) {
		dev_kfree_skb_any(skb);
		return;
	}

	ep = &htc->endpoint[eid];
	spin_lock_bh(&htc->tx_lock);