From 4225c8eabccaefe636a8f0c303b31820b353e4ef Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sat, 6 Feb 2010 15:20:13 +0100 Subject: [PATCH] --- yaml --- r: 184081 b: refs/heads/master c: 29165e4c8b265a415f1fd1dca947b5d4c72abc47 h: refs/heads/master i: 184079: e082c03a46209d7ac222a7a52c2b61386ccfd17e v: v3 --- [refs] | 2 +- trunk/net/mac80211/mlme.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 66af4aa2cb7c..0ff025e6fade 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 21b2d8bd2f0d4e0f21ade147fd193c8b9c1fd2b9 +refs/heads/master: 29165e4c8b265a415f1fd1dca947b5d4c72abc47 diff --git a/trunk/net/mac80211/mlme.c b/trunk/net/mac80211/mlme.c index ac9429e8d72b..7a7921476582 100644 --- a/trunk/net/mac80211/mlme.c +++ b/trunk/net/mac80211/mlme.c @@ -1995,12 +1995,18 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata, mutex_lock(&local->work_mtx); list_for_each_entry(wk, &local->work_list, list) { - if (wk->type != IEEE80211_WORK_DIRECT_PROBE) + if (wk->sdata != sdata) continue; + + if (wk->type != IEEE80211_WORK_DIRECT_PROBE && + wk->type != IEEE80211_WORK_AUTH) + continue; + if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN)) continue; - not_auth_yet = true; - list_del(&wk->list); + + not_auth_yet = wk->type == IEEE80211_WORK_DIRECT_PROBE; + list_del_rcu(&wk->list); free_work(wk); break; }