From 2b19f0c2f1bba263bbc61a5a321b84e0ce811e3d Mon Sep 17 00:00:00 2001 From: Ben Greear Date: Wed, 20 Feb 2013 09:41:09 -0800 Subject: [PATCH] --- yaml --- r: 361061 b: refs/heads/master c: 499218595a2e8296b7492af32fcca141b7b8184a h: refs/heads/master i: 361059: df724e1fa8b7607e63567bd692d81e3efc9ecc25 v: v3 --- [refs] | 2 +- trunk/net/mac80211/mlme.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index ac4025c10395..e9dfc7025131 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9b5bd5a4917eeb5eca00d1842a74186cfc8dd1c6 +refs/heads/master: 499218595a2e8296b7492af32fcca141b7b8184a diff --git a/trunk/net/mac80211/mlme.c b/trunk/net/mac80211/mlme.c index 6044c6d87e4c..b756d2924690 100644 --- a/trunk/net/mac80211/mlme.c +++ b/trunk/net/mac80211/mlme.c @@ -4319,6 +4319,17 @@ void ieee80211_mgd_stop(struct ieee80211_sub_if_data *sdata) { struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; + /* + * Make sure some work items will not run after this, + * they will not do anything but might not have been + * cancelled when disconnecting. + */ + cancel_work_sync(&ifmgd->monitor_work); + cancel_work_sync(&ifmgd->beacon_connection_loss_work); + cancel_work_sync(&ifmgd->request_smps_work); + cancel_work_sync(&ifmgd->csa_connection_drop_work); + cancel_work_sync(&ifmgd->chswitch_work); + mutex_lock(&ifmgd->mtx); if (ifmgd->assoc_data) ieee80211_destroy_assoc_data(sdata, false);