Commit 800113ff authored by Sriram R's avatar Sriram R Committed by Kalle Valo
Browse files

ath11k: Avoid mgmt tx count underflow



The mgmt tx count reference is incremented/decremented on every mgmt tx and on
tx completion event from firmware.
In case of an unexpected mgmt tx completion event from firmware,
the counter would underflow. Avoid this by decrementing
only when the tx count is greater than 0.

Signed-off-by: default avatarSriram R <srirrama@codeaurora.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1585567028-9242-1-git-send-email-srirrama@codeaurora.org
parent bdef56a3
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -3880,8 +3880,9 @@ static int wmi_process_mgmt_tx_comp(struct ath11k *ar, u32 desc_id,

	ieee80211_tx_status_irqsafe(ar->hw, msdu);

	WARN_ON_ONCE(atomic_read(&ar->num_pending_mgmt_tx) == 0);
	atomic_dec(&ar->num_pending_mgmt_tx);
	/* WARN when we received this event without doing any mgmt tx */
	if (atomic_dec_if_positive(&ar->num_pending_mgmt_tx) < 0)
		WARN_ON_ONCE(1);

	return 0;
}