From: Felix Fietkau Date: Wed, 3 Jul 2024 12:10:01 +0200 Subject: [PATCH] wifi: mac80211: clear vif drv_priv after calling remove_interface Avoid reusing stale driver data when an interface is brought down and up again. In order to avoid having to duplicate the memset in every single driver, do it here. Signed-off-by: Felix Fietkau --- --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c @@ -693,8 +693,12 @@ static void ieee80211_do_stop(struct iee fallthrough; default: - if (going_down) - drv_remove_interface(local, sdata); + if (!going_down) + break; + drv_remove_interface(local, sdata); + + /* Clear private driver data to prevent reuse */ + memset(sdata->vif.drv_priv, 0, local->hw.vif_data_size); } ieee80211_recalc_ps(local);