diff options
Diffstat (limited to 'drivers/net/wireless/hostap/hostap_hw.c')
-rw-r--r-- | drivers/net/wireless/hostap/hostap_hw.c | 10 |
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 | ||