On Tue, 2024-07-16 at 16:25 -0700, Ben Greear wrote: > While poking around at some instability and poor performance seen in download > direction, I noticed that the rate-ctrl was probably set incorrectly in > the iwlwifi driver due to link_sta->rx_nss being zero when changing active link > to the secondary link (the one we didn't originally associate with). > > After debugging, I found that the hack below will make this problem > go away. I sincerely doubt this is the correct approach, but I'm not > sure how it is all supposed to work in the first place. Andrei came up with this, which does seem better, but probably wouldn't address the AP side: diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index d624c51d0bd1..8d32adf7502d 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -5744,6 +5744,7 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata, } if (link_id != assoc_data->assoc_link_id) { + ieee80211_sta_init_nss(link_sta); err = ieee80211_sta_activate_link(sta, link_id); if (err) goto out_err; Care to test it? In general I think we should probably remove the call to ieee80211_sta_init_nss() from rate_control_rate_init() and call it explicitly wherever needed, since with MLO we require offloaded rate control and rate_control_rate_init() doesn't really do anything (except this for the deflink, which is then questionable) johannes