rsi: parse TID from data frame correctly
authorAmitkumar Karwar <amit.karwar@redpinesignals.com>
Tue, 10 Apr 2018 15:04:15 +0000 (20:34 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 24 Apr 2018 17:25:11 +0000 (20:25 +0300)
Currently TID is extracted by checking at specific offset in data frame.
This approach doesn't work for some of the frames. This patch uses mac80211
API and do it correctly

Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: Siva Rebbagondla <siva.rebbagondla@redpinesignals.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/rsi/rsi_91x_core.c

index 3ca468b..1f1b972 100644 (file)
@@ -432,7 +432,9 @@ void rsi_core_xmit(struct rsi_common *common, struct sk_buff *skb)
                }
        } else {
                if (ieee80211_is_data_qos(wh->frame_control)) {
-                       tid = (skb->data[24] & IEEE80211_QOS_TID);
+                       u8 *qos = ieee80211_get_qos_ctl(wh);
+
+                       tid = *qos & IEEE80211_QOS_CTL_TID_MASK;
                        skb->priority = TID_TO_WME_AC(tid);
                } else {
                        tid = IEEE80211_NONQOS_TID;