Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ath9k: Fix no-ack frame status

Check if the frame has been completed without any
error and use IEEE80211_TX_STAT_NOACK_TRANSMITTED to
indicate successful transmission of no-ack frames.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

authored by

Sujith Manoharan and committed by
Kalle Valo
2b5b8f19 65400a53

+6 -3
+6 -3
drivers/net/wireless/ath/ath9k/xmit.c
··· 2489 2489 if (sc->sc_ah->caldata) 2490 2490 set_bit(PAPRD_PACKET_SENT, &sc->sc_ah->caldata->cal_flags); 2491 2491 2492 - if (!(tx_flags & ATH_TX_ERROR)) 2493 - /* Frame was ACKed */ 2494 - tx_info->flags |= IEEE80211_TX_STAT_ACK; 2492 + if (!(tx_flags & ATH_TX_ERROR)) { 2493 + if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK) 2494 + tx_info->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED; 2495 + else 2496 + tx_info->flags |= IEEE80211_TX_STAT_ACK; 2497 + } 2495 2498 2496 2499 padpos = ieee80211_hdrlen(hdr->frame_control); 2497 2500 padsize = padpos & 3;