From 9007dcc27a132f601791e6e2bbdb954be0f09933 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Mon, 14 Jun 2010 11:55:56 -0700 Subject: [PATCH] --- yaml --- r: 203055 b: refs/heads/master c: 05e48e8e437148298f4673e1efe81f9ead5f41d7 h: refs/heads/master i: 203053: d75ba78a448925be1fd043c1bbc0713c44e8b353 203051: bf2ca8ecc68ebe08c3a5e40ac85ae726f607fbac 203047: 11ce3aada36fe80f04ca648ae34c1e04f7da5eab 203039: 33197617c90cbf747d55fc2e196ca1984c5d362f v: v3 --- [refs] | 2 +- trunk/net/mac80211/mlme.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index bb7e2f1b9020..d1fb8e703dfd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ff61638105db6f5832ef8700436ba6aa6d3a2fda +refs/heads/master: 05e48e8e437148298f4673e1efe81f9ead5f41d7 diff --git a/trunk/net/mac80211/mlme.c b/trunk/net/mac80211/mlme.c index 1c0d8fce08dd..637b22411d41 100644 --- a/trunk/net/mac80211/mlme.c +++ b/trunk/net/mac80211/mlme.c @@ -2158,14 +2158,16 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata, struct ieee80211_local *local = sdata->local; struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; struct ieee80211_work *wk; - const u8 *bssid = req->bss->bssid; + u8 bssid[ETH_ALEN]; + bool assoc_bss = false; mutex_lock(&ifmgd->mtx); + memcpy(bssid, req->bss->bssid, ETH_ALEN); if (ifmgd->associated == req->bss) { - bssid = req->bss->bssid; - ieee80211_set_disassoc(sdata, true); + ieee80211_set_disassoc(sdata, false); mutex_unlock(&ifmgd->mtx); + assoc_bss = true; } else { bool not_auth_yet = false; @@ -2211,6 +2213,8 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata, ieee80211_send_deauth_disassoc(sdata, bssid, IEEE80211_STYPE_DEAUTH, req->reason_code, cookie, !req->local_state_change); + if (assoc_bss) + sta_info_destroy_addr(sdata, bssid); ieee80211_recalc_idle(sdata->local);