Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02d83e60 authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville
Browse files

mac80211: fix ieee80211_set_disassoc() sending DelBA



When ieee80211_set_disassoc() is called with the
tx argument set to true, it will send DelBA out
to the peer. This isn't useful or necessary in a
few cases where we do it today, those being when
we lost the connection or when the supplicant
explicitly asked us to not tell the AP.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 5fef7dbc
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -1684,7 +1684,7 @@ static void __ieee80211_connection_loss(struct ieee80211_sub_if_data *sdata)
	printk(KERN_DEBUG "%s: Connection to AP %pM lost.\n",
	printk(KERN_DEBUG "%s: Connection to AP %pM lost.\n",
	       sdata->name, bssid);
	       sdata->name, bssid);


	ieee80211_set_disassoc(sdata, true, true);
	ieee80211_set_disassoc(sdata, true, false);
	mutex_unlock(&ifmgd->mtx);
	mutex_unlock(&ifmgd->mtx);


	/*
	/*
@@ -2699,7 +2699,7 @@ static void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
	ifmgd->flags &= ~(IEEE80211_STA_CONNECTION_POLL |
	ifmgd->flags &= ~(IEEE80211_STA_CONNECTION_POLL |
			  IEEE80211_STA_BEACON_POLL);
			  IEEE80211_STA_BEACON_POLL);


	ieee80211_set_disassoc(sdata, true, true);
	ieee80211_set_disassoc(sdata, true, false);
	mutex_unlock(&ifmgd->mtx);
	mutex_unlock(&ifmgd->mtx);
	/*
	/*
	 * must be outside lock due to cfg80211,
	 * must be outside lock due to cfg80211,
@@ -3500,7 +3500,7 @@ int ieee80211_mgd_disassoc(struct ieee80211_sub_if_data *sdata,
	       sdata->name, req->bss->bssid, req->reason_code);
	       sdata->name, req->bss->bssid, req->reason_code);


	memcpy(bssid, req->bss->bssid, ETH_ALEN);
	memcpy(bssid, req->bss->bssid, ETH_ALEN);
	ieee80211_set_disassoc(sdata, false, true);
	ieee80211_set_disassoc(sdata, false, !req->local_state_change);


	mutex_unlock(&ifmgd->mtx);
	mutex_unlock(&ifmgd->mtx);