return err;
 }
 
+static int
+mt7996_mac_sta_change_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+                           struct ieee80211_sta *sta, u16 old_links,
+                           u16 new_links)
+{
+       struct mt7996_dev *dev = mt7996_hw_dev(hw);
+       unsigned long add = new_links & ~old_links;
+       unsigned long rem = old_links & ~new_links;
+       int ret;
+
+       mutex_lock(&dev->mt76.mutex);
+
+       mt7996_mac_sta_remove_links(dev, sta, rem);
+       ret = mt7996_mac_sta_add_links(dev, vif, sta, add);
+
+       mutex_unlock(&dev->mt76.mutex);
+
+       return ret;
+}
+
 static int
 mt7996_mac_sta_add(struct mt76_phy *mphy, struct ieee80211_vif *vif,
                   struct ieee80211_sta *sta)
        .net_setup_tc = mt76_wed_net_setup_tc,
 #endif
        .change_vif_links = mt7996_change_vif_links,
+       .change_sta_links = mt7996_mac_sta_change_links,
 };