aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/hostap/hostap_hw.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/hostap/hostap_hw.c')
-rw-r--r--drivers/net/wireless/hostap/hostap_hw.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
index e9d9d622a9b0..a8bddd81b4d1 100644
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -2621,7 +2621,7 @@ static irqreturn_t prism2_interrupt(int irq, void *dev_id)
2621 iface = netdev_priv(dev); 2621 iface = netdev_priv(dev);
2622 local = iface->local; 2622 local = iface->local;
2623 2623
2624 /* Detect early interrupt before driver is fully configued */ 2624 /* Detect early interrupt before driver is fully configured */
2625 spin_lock(&local->irq_init_lock); 2625 spin_lock(&local->irq_init_lock);
2626 if (!dev->base_addr) { 2626 if (!dev->base_addr) {
2627 if (net_ratelimit()) { 2627 if (net_ratelimit()) {
@@ -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