mt76: mt7921: fix endianness in mt7921_mcu_tx_done_event
authorLorenzo Bianconi <lorenzo@kernel.org>
Sat, 19 Jun 2021 18:18:19 +0000 (20:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Nov 2021 18:16:35 +0000 (19:16 +0100)
[ Upstream commit df040215c077de0c13aab12c222bd0360a0d3988 ]

Fix endianness in mt7921_mcu_tx_done_event event reported by the
firmware.

Fixes: 3cce2b98e0241 ("mt76: mt7921: introduce mac tx done handling")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
drivers/net/wireless/mediatek/mt76/mt7921/mcu.h

index 9fbaacc67cfad0d8d0bfb4757748aea698fd1476..68840e55ede7ab073bcd9e9738107e8e397bfa66 100644 (file)
@@ -532,7 +532,8 @@ mt7921_mcu_tx_done_event(struct mt7921_dev *dev, struct sk_buff *skb)
                peer.g8 = !!(sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_80);
                peer.g16 = !!(sta->vht_cap.cap & IEEE80211_VHT_CAP_SHORT_GI_160);
                mt7921_mcu_tx_rate_parse(mphy->mt76, &peer,
-                                        &msta->stats.tx_rate, event->tx_rate);
+                                        &msta->stats.tx_rate,
+                                        le16_to_cpu(event->tx_rate));
 
                spin_lock_bh(&dev->sta_poll_lock);
                break;
index de3c091f673685db0ad2a144da8b0d6ec03d9382..42e727184895670fdc95f3966047e46101f50c9f 100644 (file)
@@ -296,11 +296,11 @@ struct mt7921_txpwr_event {
 struct mt7921_mcu_tx_done_event {
        u8 pid;
        u8 status;
-       u16 seq;
+       __le16 seq;
 
        u8 wlan_idx;
        u8 tx_cnt;
-       u16 tx_rate;
+       __le16 tx_rate;
 
        u8 flag;
        u8 tid;
@@ -312,9 +312,9 @@ struct mt7921_mcu_tx_done_event {
        u8 reason;
        u8 rsv0[1];
 
-       u32 delay;
-       u32 timestamp;
-       u32 applied_flag;
+       __le32 delay;
+       __le32 timestamp;
+       __le32 applied_flag;
 
        u8 txs[28];