From: Rajkumar Manoharan Date: Thu, 18 Nov 2010 06:49:52 +0000 (+0530) Subject: ath9k_htc: Avoid setting QoS control for non-QoS frames X-Git-Tag: firefly_0821_release~9833^2~79^2^2~254 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=afa45b3276c604dab9d50875754b9f5ed0585847;p=firefly-linux-kernel-4.4.55.git ath9k_htc: Avoid setting QoS control for non-QoS frames commit 3bf30b56c4f0a1c4fae34050b7db4527c92891e8 upstream. Setting tid information in the TX header is required only for QoS frames. Not handling this case causes severe data loss with some APs. Signed-off-by: Rajkumar Manoharan Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c index 2a6e45a293a9..f06eeab2a572 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_txrx.c @@ -121,7 +121,7 @@ int ath9k_htc_tx_start(struct ath9k_htc_priv *priv, struct sk_buff *skb) tx_hdr.data_type = ATH9K_HTC_NORMAL; } - if (ieee80211_is_data(fc)) { + if (ieee80211_is_data_qos(fc)) { qc = ieee80211_get_qos_ctl(hdr); tx_hdr.tidno = qc[0] & IEEE80211_QOS_CTL_TID_MASK; }