From: Johannes Berg Date: Sat, 8 Mar 2025 21:03:39 +0000 (+0200) Subject: wifi: mac80211: fix ML reconf reset in disconnect X-Git-Tag: v6.15-rc1~160^2~20^2~68 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=82306ea157ad5d1dc8126f81a989e61bf1001c0d;p=thirdparty%2Fkernel%2Flinux.git wifi: mac80211: fix ML reconf reset in disconnect If disconnecting while ML reconfiguration is in progress, the data isn't freed because the reset call is too late, after the vif already switches to non-MLD. Move the call to fix that. Signed-off-by: Johannes Berg Reviewed-by: Ilan Peer Signed-off-by: Miri Korenblit Link: https://patch.msgid.link/20250308225541.abaea69cde42.I7e6b35731ded94fc2d68a2d4ecf81873712c268e@changeid Signed-off-by: Johannes Berg --- diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 60a585caa96de..9c4d4f04b23eb 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -4152,16 +4152,16 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata, wiphy_work_cancel(sdata->local->hw.wiphy, &ifmgd->teardown_ttlm_work); - ieee80211_vif_set_links(sdata, 0, 0); - - ifmgd->mcast_seq_last = IEEE80211_SN_MODULO; - /* if disconnection happens in the middle of the ML reconfiguration * flow, cfg80211 must called to release the BSS references obtained * when the flow started. */ ieee80211_ml_reconf_reset(sdata); + ieee80211_vif_set_links(sdata, 0, 0); + + ifmgd->mcast_seq_last = IEEE80211_SN_MODULO; + ifmgd->epcs.enabled = false; ifmgd->epcs.dialog_token = 0; }