mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
authorLorenzo Bianconi <lorenzo@kernel.org>
Sat, 22 Jan 2022 14:58:57 +0000 (15:58 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:28 +0000 (14:23 +0200)
[ Upstream commit fc8e2c707ce11c8ec2e992885b0d53a5e04031ac ]

Check sta_rates pointer value in mt7603_sta_rate_tbl_update routine
since minstrel_ht_update_rates can fail allocating rates array.

Fixes: c8846e1015022 ("mt76: add driver for MT7603E and MT7628/7688")
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/mt7603/main.c

index 8edea1e7a602f7e0c4a0944672ef01a9fa4e98b2..7f52a4a11ceaab0464ded41cb4b59fd6069e5b04 100644 (file)
@@ -620,6 +620,9 @@ mt7603_sta_rate_tbl_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
        struct ieee80211_sta_rates *sta_rates = rcu_dereference(sta->rates);
        int i;
 
+       if (!sta_rates)
+               return;
+
        spin_lock_bh(&dev->mt76.lock);
        for (i = 0; i < ARRAY_SIZE(msta->rates); i++) {
                msta->rates[i].idx = sta_rates->rate[i].idx;