From: Eliad Peller Date: Tue, 4 Sep 2012 14:44:45 +0000 (+0300) Subject: mac80211: clear bssid on auth/assoc failure X-Git-Tag: v3.5.5~146 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e2d0b03cd7cb264258e7473a4a3ef72f48752999;p=thirdparty%2Fkernel%2Fstable.git mac80211: clear bssid on auth/assoc failure commit 3d2abdfdf14f4d6decc2023708211e19b096f4ca upstream. ifmgd->bssid wasn't cleared properly in some auth/assoc failure cases, causing mac80211 and the low-level driver to go out of sync. Clear ifmgd->bssid on failure, and notify the driver. Signed-off-by: Eliad Peller Signed-off-by: Johannes Berg Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 95ae431f14fac..92028de18b845 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -3270,6 +3270,8 @@ int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata, goto out_unlock; err_clear: + memset(ifmgd->bssid, 0, ETH_ALEN); + ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID); ifmgd->auth_data = NULL; err_free: kfree(auth_data); @@ -3449,6 +3451,8 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata, err = 0; goto out; err_clear: + memset(ifmgd->bssid, 0, ETH_ALEN); + ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID); ifmgd->assoc_data = NULL; err_free: kfree(assoc_data);