aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/mlme.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index ac9429e8d72b..7a7921476582 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1995,12 +1995,18 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
1995 1995
1996 mutex_lock(&local->work_mtx); 1996 mutex_lock(&local->work_mtx);
1997 list_for_each_entry(wk, &local->work_list, list) { 1997 list_for_each_entry(wk, &local->work_list, list) {
1998 if (wk->type != IEEE80211_WORK_DIRECT_PROBE) 1998 if (wk->sdata != sdata)
1999 continue; 1999 continue;
2000
2001 if (wk->type != IEEE80211_WORK_DIRECT_PROBE &&
2002 wk->type != IEEE80211_WORK_AUTH)
2003 continue;
2004
2000 if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN)) 2005 if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN))
2001 continue; 2006 continue;
2002 not_auth_yet = true; 2007
2003 list_del(&wk->list); 2008 not_auth_yet = wk->type == IEEE80211_WORK_DIRECT_PROBE;
2009 list_del_rcu(&wk->list);
2004 free_work(wk); 2010 free_work(wk);
2005 break; 2011 break;
2006 } 2012 }