diff options
author | Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be> | 2020-11-04 07:18:23 +0100 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2020-12-09 08:05:20 +0100 |
commit | 8a71f34bb251d59e9d577df196c450cec14773ff (patch) | |
tree | 4547c63aa158ae23f0ec28114a48dbe0300b1ad5 /drivers/net/wireless | |
parent | ath11k: mesh: add support for 256 bitmap in blockack frames in 11ax (diff) | |
download | linux-8a71f34bb251d59e9d577df196c450cec14773ff.tar.xz linux-8a71f34bb251d59e9d577df196c450cec14773ff.zip |
ath9k_htc: adhere to the DONT_REORDER transmit flag
Assure that frames with the fixed order flag are not reordered
relative to each other. This is accomplished by transmitting them
using a fixed priority independent of their QoS field.
Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20201104061823.197407-6-Mathy.Vanhoef@kuleuven.be
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c index 0bdc4dcb7b8f..8e69e8989f6d 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c @@ -297,7 +297,12 @@ static void ath9k_htc_tx_data(struct ath9k_htc_priv *priv, tx_hdr.data_type = ATH9K_HTC_NORMAL; } - if (ieee80211_is_data_qos(hdr->frame_control)) { + /* Transmit all frames that should not be reordered relative + * to each other using the same priority. For other QoS data + * frames extract the priority from the header. + */ + if (!(tx_info->control.flags & IEEE80211_TX_CTRL_DONT_REORDER) && + ieee80211_is_data_qos(hdr->frame_control)) { qc = ieee80211_get_qos_ctl(hdr); tx_hdr.tidno = qc[0] & IEEE80211_QOS_CTL_TID_MASK; } |