wifi: mt76: mt7915: fix omac index assignment after hardware reset
authorFelix Fietkau <nbd@nbd.name>
Mon, 30 Dec 2024 19:42:00 +0000 (20:42 +0100)
committerFelix Fietkau <nbd@nbd.name>
Tue, 14 Jan 2025 12:34:36 +0000 (13:34 +0100)
Reset per-phy mac address slot mask in order to avoid leaking entries.

Fixes: 8a55712d124f ("wifi: mt76: mt7915: enable full system reset support")
Link: https://patch.msgid.link/20241230194202.95065-12-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/mac.c

index 9b9158fdd4d958f7af25fbaee3ac6e10d48ef371..e2693aea2e8e8ba3f873b0ae5bc07086fc99d139 100644 (file)
@@ -1444,9 +1444,11 @@ static void
 mt7915_mac_full_reset(struct mt7915_dev *dev)
 {
        struct mt76_phy *ext_phy;
+       struct mt7915_phy *phy2;
        int i;
 
        ext_phy = dev->mt76.phys[MT_BAND1];
+       phy2 = ext_phy ? ext_phy->priv : NULL;
 
        dev->recovery.hw_full_reset = true;
 
@@ -1476,6 +1478,9 @@ mt7915_mac_full_reset(struct mt7915_dev *dev)
 
        memset(dev->mt76.wcid_mask, 0, sizeof(dev->mt76.wcid_mask));
        dev->mt76.vif_mask = 0;
+       dev->phy.omac_mask = 0;
+       if (phy2)
+               phy2->omac_mask = 0;
 
        i = mt76_wcid_alloc(dev->mt76.wcid_mask, MT7915_WTBL_STA);
        dev->mt76.global_wcid.idx = i;