diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 32ab4a0215a0..d4075476670a 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -2654,13 +2654,8 @@ static void iwl_alive_start(struct iwl_priv *priv) | |||
2654 | /* After the ALIVE response, we can send host commands to the uCode */ | 2654 | /* After the ALIVE response, we can send host commands to the uCode */ |
2655 | set_bit(STATUS_ALIVE, &priv->status); | 2655 | set_bit(STATUS_ALIVE, &priv->status); |
2656 | 2656 | ||
2657 | if (priv->cfg->ops->lib->recover_from_tx_stall) { | 2657 | /* Enable watchdog to monitor the driver tx queues */ |
2658 | /* Enable timer to monitor the driver queues */ | 2658 | iwl_setup_watchdog(priv); |
2659 | mod_timer(&priv->monitor_recover, | ||
2660 | jiffies + | ||
2661 | msecs_to_jiffies( | ||
2662 | priv->cfg->base_params->monitor_recover_period)); | ||
2663 | } | ||
2664 | 2659 | ||
2665 | if (iwl_is_rfkill(priv)) | 2660 | if (iwl_is_rfkill(priv)) |
2666 | return; | 2661 | return; |
@@ -2755,8 +2750,7 @@ static void __iwl_down(struct iwl_priv *priv) | |||
2755 | 2750 | ||
2756 | /* Stop TX queues watchdog. We need to have STATUS_EXIT_PENDING bit set | 2751 | /* Stop TX queues watchdog. We need to have STATUS_EXIT_PENDING bit set |
2757 | * to prevent rearm timer */ | 2752 | * to prevent rearm timer */ |
2758 | if (priv->cfg->ops->lib->recover_from_tx_stall) | 2753 | del_timer_sync(&priv->watchdog); |
2759 | del_timer_sync(&priv->monitor_recover); | ||
2760 | 2754 | ||
2761 | iwl_clear_ucode_stations(priv, NULL); | 2755 | iwl_clear_ucode_stations(priv, NULL); |
2762 | iwl_dealloc_bcast_stations(priv); | 2756 | iwl_dealloc_bcast_stations(priv); |
@@ -3742,12 +3736,9 @@ static void iwl_setup_deferred_work(struct iwl_priv *priv) | |||
3742 | priv->ucode_trace.data = (unsigned long)priv; | 3736 | priv->ucode_trace.data = (unsigned long)priv; |
3743 | priv->ucode_trace.function = iwl_bg_ucode_trace; | 3737 | priv->ucode_trace.function = iwl_bg_ucode_trace; |
3744 | 3738 | ||
3745 | if (priv->cfg->ops->lib->recover_from_tx_stall) { | 3739 | init_timer(&priv->watchdog); |
3746 | init_timer(&priv->monitor_recover); | 3740 | priv->watchdog.data = (unsigned long)priv; |
3747 | priv->monitor_recover.data = (unsigned long)priv; | 3741 | priv->watchdog.function = iwl_bg_watchdog; |
3748 | priv->monitor_recover.function = | ||
3749 | priv->cfg->ops->lib->recover_from_tx_stall; | ||
3750 | } | ||
3751 | 3742 | ||
3752 | if (!priv->cfg->base_params->use_isr_legacy) | 3743 | if (!priv->cfg->base_params->use_isr_legacy) |
3753 | tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long)) | 3744 | tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long)) |