Set EXTRA_INFO_NEW for the first time only to prevent adding the same
starec entry, otherwise the entry might be removed in fw.
Reviewed-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
        mt7915_mac_wtbl_update(dev, idx,
                               MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
 
-       rcu_assign_pointer(dev->mt76.wcid[idx], &mvif->sta.wcid);
        if (vif->txq) {
                mtxq = (struct mt76_txq *)vif->txq->drv_priv;
                mtxq->wcid = idx;
 
        mt7915_mcu_add_bss_info(phy, vif, true);
        mt7915_mcu_add_sta(dev, vif, NULL, true);
+       rcu_assign_pointer(dev->mt76.wcid[idx], &mvif->sta.wcid);
 
 out:
        mutex_unlock(&dev->mt76.mutex);
 
                return PTR_ERR(skb);
 
        /* starec basic */
-       mt76_connac_mcu_sta_basic_tlv(skb, vif, sta, enable, true);
+       mt76_connac_mcu_sta_basic_tlv(skb, vif, sta, enable,
+                       !rcu_access_pointer(dev->mt76.wcid[msta->wcid.idx]));
        if (!enable)
                goto out;