wifi: mac80211: ibss: mark IBSS left before leaving

Mark that we left the IBSS before actually leaving (which
requires calling the driver). Otherwise, it's possible to
have the driver do some work flushing etc. while leaving,
and then get into the work trying to join again while all
data is being destroyed.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250102161730.81a6c12b304c.I8484f768371e128152a84aa164854cca9ec1066b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2025-01-02 16:20:08 +02:00
parent 3bf18e9916
commit b9caeea95c

View File

@ -1827,8 +1827,8 @@ int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata)
{ {
struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; struct ieee80211_if_ibss *ifibss = &sdata->u.ibss;
ieee80211_ibss_disconnect(sdata);
ifibss->ssid_len = 0; ifibss->ssid_len = 0;
ieee80211_ibss_disconnect(sdata);
eth_zero_addr(ifibss->bssid); eth_zero_addr(ifibss->bssid);
/* remove beacon */ /* remove beacon */