Skip to content

Commit d1a1cd9

Browse files
Vinith Kumar Ropsiff
authored andcommitted
wifi: ath12k: Report proper tx completion status to mac80211
[ Upstream commit d2d9c9b ] Currently Tx completion for few exception packets are received from firmware and the tx status updated to mac80211. The tx status values of HAL_WBM_REL_HTT_TX_COMP_STATUS_DROP and HAL_WBM_REL_HTT_TX_COMP_STATUS_TTL are considered as tx failure and reported as tx failure to mac80211. But these failure status is due to internal firmware tx drop and these packets were not tried to transmit in the air. In case of mesh this invalid tx status report might trigger mpath broken issue due to increase in mpath fail average. So do not report these tx status as tx failure instead free the skb by calling ieee80211_free_txskb(), and that will be accounted as dropped frame. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1 Signed-off-by: Vinith Kumar R <quic_vinithku@quicinc.com> Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> Link: https://patch.msgid.link/20241122173432.2064858-1-quic_tamizhr@quicinc.com Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com> Signed-off-by: Sasha Levin <sashal@kernel.org> (cherry picked from commit f6dfaf5905ad69a50c3f6ee9a41ca3d0c7329bc1)
1 parent e91408e commit d1a1cd9

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

  • drivers/net/wireless/ath/ath12k

drivers/net/wireless/ath/ath12k/dp_tx.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -422,13 +422,13 @@ ath12k_dp_tx_process_htt_tx_complete(struct ath12k_base *ab,
422422

423423
switch (wbm_status) {
424424
case HAL_WBM_REL_HTT_TX_COMP_STATUS_OK:
425-
case HAL_WBM_REL_HTT_TX_COMP_STATUS_DROP:
426-
case HAL_WBM_REL_HTT_TX_COMP_STATUS_TTL:
427425
ts.acked = (wbm_status == HAL_WBM_REL_HTT_TX_COMP_STATUS_OK);
428426
ts.ack_rssi = le32_get_bits(status_desc->info2,
429427
HTT_TX_WBM_COMP_INFO2_ACK_RSSI);
430428
ath12k_dp_tx_htt_tx_complete_buf(ab, msdu, tx_ring, &ts);
431429
break;
430+
case HAL_WBM_REL_HTT_TX_COMP_STATUS_DROP:
431+
case HAL_WBM_REL_HTT_TX_COMP_STATUS_TTL:
432432
case HAL_WBM_REL_HTT_TX_COMP_STATUS_REINJ:
433433
case HAL_WBM_REL_HTT_TX_COMP_STATUS_INSPECT:
434434
ath12k_dp_tx_free_txbuf(ab, msdu, mac_id, tx_ring);

0 commit comments

Comments
 (0)