mt76: mt7915: use proper aid value in mt7915_mcu_wtbl_generic_tlv in sta mode
authorLorenzo Bianconi <lorenzo@kernel.org>
Wed, 22 Dec 2021 11:52:17 +0000 (12:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:28 +0000 (14:23 +0200)
[ Upstream commit a56b1b0f145ef2d6bb9312dedf3ab8558ef50a5b ]

mac80211 provides aid in vif->bss_conf.aid for sta mode and not in
sta->aid. Fix mt7915_mcu_wtbl_generic_tlv routine using proper value for
aid in sta mode.

Fixes: e57b7901469fc ("mt76: add mac80211 driver for MT7915 PCIe-based chipsets")
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/mt7915/mcu.c

index 7440f2b443eca04041674d7e3812f4f6b264141c..b157db9f89032c59c5035e07e6a6b14efde1f7a9 100644 (file)
@@ -1396,8 +1396,11 @@ mt7915_mcu_wtbl_generic_tlv(struct sk_buff *skb, struct ieee80211_vif *vif,
        generic = (struct wtbl_generic *)tlv;
 
        if (sta) {
+               if (vif->type == NL80211_IFTYPE_STATION)
+                       generic->partial_aid = cpu_to_le16(vif->bss_conf.aid);
+               else
+                       generic->partial_aid = cpu_to_le16(sta->aid);
                memcpy(generic->peer_addr, sta->addr, ETH_ALEN);
-               generic->partial_aid = cpu_to_le16(sta->aid);
                generic->muar_idx = mvif->omac_idx;
                generic->qos = sta->wme;
        } else {