Skip to content

Commit

Permalink
hostap: don't use flush_scheduled_work()
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Tejun Heo committed Dec 12, 2010
1 parent 781ba45 commit 1635953
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
3 changes: 3 additions & 0 deletions drivers/net/wireless/hostap/hostap_ap.c
Original file line number Diff line number Diff line change
Expand Up @@ -858,7 +858,10 @@ void hostap_free_data(struct ap_data *ap)
return;
}

flush_work_sync(&ap->add_sta_proc_queue);

#ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT
flush_work_sync(&ap->wds_oper_queue);
if (ap->crypt)
ap->crypt->deinit(ap->crypt_priv);
ap->crypt = ap->crypt_priv = NULL;
Expand Down
8 changes: 7 additions & 1 deletion drivers/net/wireless/hostap/hostap_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -3317,7 +3317,13 @@ static void prism2_free_local_data(struct net_device *dev)

unregister_netdev(local->dev);

flush_scheduled_work();
flush_work_sync(&local->reset_queue);
flush_work_sync(&local->set_multicast_list_queue);
flush_work_sync(&local->set_tim_queue);
#ifndef PRISM2_NO_STATION_MODES
flush_work_sync(&local->info_queue);
#endif
flush_work_sync(&local->comms_qual_update);

lib80211_crypt_info_free(&local->crypt_info);

Expand Down

0 comments on commit 1635953

Please sign in to comment.