diff options
author | Tejun Heo <tj@kernel.org> | 2010-12-12 10:45:15 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-12-12 10:45:15 -0500 |
commit | 1635953305694ece16d99078ca6d32f3d4e7eb36 (patch) | |
tree | 32ccd6373048359f4e2fa49d922d9888b41abbe1 | |
parent | 781ba4567698be9db7ca94d827c4b38d8583c168 (diff) |
hostap: don't use flush_scheduled_work()
flush_scheduled_work() is on its way out. Drop flush_scheduled_work()
from prism2_free_local_data() and replace it with explicit flushing of
work items on the respective free functions. Work items in ap_data
are flushed from hostap_free_data() and the ones in local_info from
prism2_free_local_data().
Flush is used instead of cancel as some process and free items from
queue.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jes Sorensen <jes@trained-monkey.org>
Cc: netdev@vger.kernel.org
-rw-r--r-- | drivers/net/wireless/hostap/hostap_ap.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_hw.c | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/wireless/hostap/hostap_ap.c b/drivers/net/wireless/hostap/hostap_ap.c index dbb986946e1..18d63f57777 100644 --- a/drivers/net/wireless/hostap/hostap_ap.c +++ b/drivers/net/wireless/hostap/hostap_ap.c | |||
@@ -858,7 +858,10 @@ void hostap_free_data(struct ap_data *ap) | |||
858 | return; | 858 | return; |
859 | } | 859 | } |
860 | 860 | ||
861 | flush_work_sync(&ap->add_sta_proc_queue); | ||
862 | |||
861 | #ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT | 863 | #ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT |
864 | flush_work_sync(&ap->wds_oper_queue); | ||
862 | if (ap->crypt) | 865 | if (ap->crypt) |
863 | ap->crypt->deinit(ap->crypt_priv); | 866 | ap->crypt->deinit(ap->crypt_priv); |
864 | ap->crypt = ap->crypt_priv = NULL; | 867 | ap->crypt = ap->crypt_priv = NULL; |
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c index b7cb165d612..a8bddd81b4d 100644 --- a/drivers/net/wireless/hostap/hostap_hw.c +++ b/drivers/net/wireless/hostap/hostap_hw.c | |||
@@ -3317,7 +3317,13 @@ static void prism2_free_local_data(struct net_device *dev) | |||
3317 | 3317 | ||
3318 | unregister_netdev(local->dev); | 3318 | unregister_netdev(local->dev); |
3319 | 3319 | ||
3320 | flush_scheduled_work(); | 3320 | flush_work_sync(&local->reset_queue); |
3321 | flush_work_sync(&local->set_multicast_list_queue); | ||
3322 | flush_work_sync(&local->set_tim_queue); | ||
3323 | #ifndef PRISM2_NO_STATION_MODES | ||
3324 | flush_work_sync(&local->info_queue); | ||
3325 | #endif | ||
3326 | flush_work_sync(&local->comms_qual_update); | ||
3321 | 3327 | ||
3322 | lib80211_crypt_info_free(&local->crypt_info); | 3328 | lib80211_crypt_info_free(&local->crypt_info); |
3323 | 3329 | ||