diff options
Diffstat (limited to 'net/mac80211/ibss.c')
| -rw-r--r-- | net/mac80211/ibss.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index 5f3620f0bc0..c21e33d1abd 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c @@ -1108,7 +1108,7 @@ int ieee80211_ibss_join(struct ieee80211_sub_if_data *sdata,  	sdata->u.ibss.state = IEEE80211_IBSS_MLME_SEARCH;  	sdata->u.ibss.ibss_join_req = jiffies; -	memcpy(sdata->u.ibss.ssid, params->ssid, IEEE80211_MAX_SSID_LEN); +	memcpy(sdata->u.ibss.ssid, params->ssid, params->ssid_len);  	sdata->u.ibss.ssid_len = params->ssid_len;  	mutex_unlock(&sdata->u.ibss.mtx); @@ -1151,10 +1151,6 @@ int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata)  	mutex_lock(&sdata->u.ibss.mtx); -	sdata->u.ibss.state = IEEE80211_IBSS_MLME_SEARCH; -	memset(sdata->u.ibss.bssid, 0, ETH_ALEN); -	sdata->u.ibss.ssid_len = 0; -  	active_ibss = ieee80211_sta_active_ibss(sdata);  	if (!active_ibss && !is_zero_ether_addr(ifibss->bssid)) { @@ -1175,6 +1171,10 @@ int ieee80211_ibss_leave(struct ieee80211_sub_if_data *sdata)  		}  	} +	ifibss->state = IEEE80211_IBSS_MLME_SEARCH; +	memset(ifibss->bssid, 0, ETH_ALEN); +	ifibss->ssid_len = 0; +  	sta_info_flush(sdata->local, sdata);  	spin_lock_bh(&ifibss->incomplete_lock);  |