Aditya Kumar Singh <quic_adisi@xxxxxxxxxxx> wrote: > > [...] > > net/mac80211/link.c | 44 ++++++++++++++++++++++---------------------- > 1 file changed, 22 insertions(+), 22 deletions(-) > > diff --git a/net/mac80211/link.c b/net/mac80211/link.c index > 58a76bcd6ae68670fbbe7fa7d07540c04ff996f8..3c46d2b2ee254fab324d57f4d0fbe94ace76d8 > 9d 100644 > --- a/net/mac80211/link.c > +++ b/net/mac80211/link.c > @@ -367,28 +367,6 @@ static int _ieee80211_set_active_links(struct ieee80211_sub_if_data > *sdata, > } > } > > - for_each_set_bit(link_id, &rem, IEEE80211_MLD_MAX_NUM_LINKS) { > - struct ieee80211_link_data *link; > - > - link = sdata_dereference(sdata->link[link_id], sdata); > - > - ieee80211_teardown_tdls_peers(link); > - > - __ieee80211_link_release_channel(link, true); > - > - /* > - * If CSA is (still) active while the link is deactivated, > - * just schedule the channel switch work for the time we > - * had previously calculated, and we'll take the process > - * from there. > - */ > - if (link->conf->csa_active) > - wiphy_delayed_work_queue(local->hw.wiphy, > - &link->u.mgd.csa.switch_work, > - link->u.mgd.csa.time - > - jiffies); > - } > - > for_each_set_bit(link_id, &add, IEEE80211_MLD_MAX_NUM_LINKS) { > struct ieee80211_link_data *link; > > @@ -458,6 +436,28 @@ static int _ieee80211_set_active_links(struct ieee80211_sub_if_data > *sdata, > __ieee80211_sta_recalc_aggregates(sta, active_links); > } > > + for_each_set_bit(link_id, &rem, IEEE80211_MLD_MAX_NUM_LINKS) { > + struct ieee80211_link_data *link; > + > + link = sdata_dereference(sdata->link[link_id], sdata); > + > + ieee80211_teardown_tdls_peers(link); > + > + __ieee80211_link_release_channel(link, true); > + > + /* > + * If CSA is (still) active while the link is deactivated, > + * just schedule the channel switch work for the time we > + * had previously calculated, and we'll take the process > + * from there. > + */ > + if (link->conf->csa_active) > + wiphy_delayed_work_queue(local->hw.wiphy, > + &link->u.mgd.csa.switch_work, > + link->u.mgd.csa.time - > + jiffies); > + } > + > for_each_set_bit(link_id, &add, IEEE80211_MLD_MAX_NUM_LINKS) { > struct ieee80211_link_data *link; > Could you also update the description of ieee80211_set_active_links() (include/net/mac80211.h) to align the changes? I think it would be like: change_vif_links(0x11) assign_vif_chanctx(link_id=4) change_sta_links(0x11) for each affected STA (the AP) [...] change_sta_links(0x10) for each affected STA (the AP) unassign_vif_chanctx(link_id=0) change_vif_links(0x10)