]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mt76: mt7996: Check phy before init msta_link in mt7996_mac_sta_add_links()
authorLorenzo Bianconi <lorenzo@kernel.org>
Fri, 29 Aug 2025 22:26:47 +0000 (00:26 +0200)
committerFelix Fietkau <nbd@nbd.name>
Mon, 15 Sep 2025 07:47:39 +0000 (09:47 +0200)
In order to avoid a possible NULL pointer dereference in
mt7996_mac_sta_init_link routine, move the phy pointer check before
running mt7996_mac_sta_init_link() in mt7996_mac_sta_add_links routine.

Fixes: dd82a9e02c054 ("wifi: mt76: mt7996: Rely on mt7996_sta_link in sta_add/sta_remove callbacks")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20250830-mt7996_mac_sta_add_links-fix-v1-1-4219fb8755ee@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/main.c

index 05d894182676e17689095644c73486dc4fafddde..c0144c7af94fe6ff2ffdfa93647a8bc493ffa881 100644 (file)
@@ -1076,16 +1076,17 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
                        goto error_unlink;
                }
 
-               err = mt7996_mac_sta_init_link(dev, link_conf, link_sta, link,
-                                              link_id);
-               if (err)
-                       goto error_unlink;
-
                mphy = mt76_vif_link_phy(&link->mt76);
                if (!mphy) {
                        err = -EINVAL;
                        goto error_unlink;
                }
+
+               err = mt7996_mac_sta_init_link(dev, link_conf, link_sta, link,
+                                              link_id);
+               if (err)
+                       goto error_unlink;
+
                mphy->num_sta++;
        }