wifi: mt76: mt7915: Fix an error handling path in mt7915_add_interface()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 29 Sep 2024 19:53:40 +0000 (21:53 +0200)
committerFelix Fietkau <nbd@nbd.name>
Tue, 14 Jan 2025 12:34:34 +0000 (13:34 +0100)
If mt76_wcid_alloc() fails, the "mt76.mutex" mutex needs to be released as
done in the other error handling paths of mt7915_add_interface().

Fixes: f3049b88b2b3 ("wifi: mt76: mt7915: allocate vif wcid in the same range as stations")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://patch.msgid.link/b9d8fbfc19360bfe60b9cea1cb0f735ab3b4bc26.1727639596.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/main.c

index 8183708a9b3552b0a5877be49a9f4695c8a7ef46..351285daac99f73a3bb822e6ba47c91569c0c589 100644 (file)
@@ -246,8 +246,10 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
        phy->omac_mask |= BIT_ULL(mvif->mt76.omac_idx);
 
        idx = mt76_wcid_alloc(dev->mt76.wcid_mask, mt7915_wtbl_size(dev));
-       if (idx < 0)
-               return -ENOSPC;
+       if (idx < 0) {
+               ret = -ENOSPC;
+               goto out;
+       }
 
        INIT_LIST_HEAD(&mvif->sta.rc_list);
        INIT_LIST_HEAD(&mvif->sta.wcid.poll_list);