diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-core.c')
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 22 | 
1 files changed, 17 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index f9e9170e977..b24623b3bdb 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c @@ -1505,11 +1505,23 @@ void iwl_setup_watchdog(struct iwl_priv *priv)  {  	unsigned int timeout = priv->cfg->base_params->wd_timeout; -	if (timeout && !iwlagn_mod_params.wd_disable) -		mod_timer(&priv->watchdog, -			  jiffies + msecs_to_jiffies(IWL_WD_TICK(timeout))); -	else -		del_timer(&priv->watchdog); +	if (!iwlagn_mod_params.wd_disable) { +		/* use system default */ +		if (timeout && !priv->cfg->base_params->wd_disable) +			mod_timer(&priv->watchdog, +				jiffies + +				msecs_to_jiffies(IWL_WD_TICK(timeout))); +		else +			del_timer(&priv->watchdog); +	} else { +		/* module parameter overwrite default configuration */ +		if (timeout && iwlagn_mod_params.wd_disable == 2) +			mod_timer(&priv->watchdog, +				jiffies + +				msecs_to_jiffies(IWL_WD_TICK(timeout))); +		else +			del_timer(&priv->watchdog); +	}  }  /**  |