From: Stanislaw Gruszka Remove the debugfs file used to configure the TX queue watchdog timeout. It was used to experiment with different timeout values to determine a suitable default, which is no longer necessary. Signed-off-by: Stanislaw Gruszka --- .../net/wireless/intel/iwlegacy/3945-mac.c | 2 +- drivers/net/wireless/intel/iwlegacy/3945.c | 2 -- .../net/wireless/intel/iwlegacy/4965-mac.c | 2 +- drivers/net/wireless/intel/iwlegacy/4965.c | 1 - drivers/net/wireless/intel/iwlegacy/common.c | 31 ++----------------- drivers/net/wireless/intel/iwlegacy/common.h | 9 +++--- drivers/net/wireless/intel/iwlegacy/debug.c | 26 ---------------- 7 files changed, 8 insertions(+), 65 deletions(-) diff --git a/drivers/net/wireless/intel/iwlegacy/3945-mac.c b/drivers/net/wireless/intel/iwlegacy/3945-mac.c index cbaf250626c5..a3b81badabfc 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c @@ -2132,7 +2132,7 @@ il3945_alive_start(struct il_priv *il) set_bit(S_ALIVE, &il->status); /* Enable watchdog to monitor the driver tx queues */ - il_setup_watchdog(il); + mod_timer(&il->watchdog, jiffies + msecs_to_jiffies(IL_WD_TICK)); if (il_is_rfkill(il)) return; diff --git a/drivers/net/wireless/intel/iwlegacy/3945.c b/drivers/net/wireless/intel/iwlegacy/3945.c index b0656b143f77..60506f7914a2 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945.c +++ b/drivers/net/wireless/intel/iwlegacy/3945.c @@ -2670,7 +2670,6 @@ static const struct il_cfg il3945_bg_cfg = { .set_l0s = false, .use_bsm = true, .led_compensation = 64, - .wd_timeout = IL_DEF_WD_TIMEOUT, .regulatory_bands = { EEPROM_REGULATORY_BAND_1_CHANNELS, @@ -2699,7 +2698,6 @@ static const struct il_cfg il3945_abg_cfg = { .set_l0s = false, .use_bsm = true, .led_compensation = 64, - .wd_timeout = IL_DEF_WD_TIMEOUT, .regulatory_bands = { EEPROM_REGULATORY_BAND_1_CHANNELS, diff --git a/drivers/net/wireless/intel/iwlegacy/4965-mac.c b/drivers/net/wireless/intel/iwlegacy/4965-mac.c index 18bb55682643..1a553ef0c04f 100644 --- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c @@ -5291,7 +5291,7 @@ il4965_alive_start(struct il_priv *il) set_bit(S_ALIVE, &il->status); /* Enable watchdog to monitor the driver tx queues */ - il_setup_watchdog(il); + mod_timer(&il->watchdog, jiffies + msecs_to_jiffies(IL_WD_TICK)); if (il_is_rfkill(il)) return; diff --git a/drivers/net/wireless/intel/iwlegacy/4965.c b/drivers/net/wireless/intel/iwlegacy/4965.c index b63e29590b04..3418fbb0e003 100644 --- a/drivers/net/wireless/intel/iwlegacy/4965.c +++ b/drivers/net/wireless/intel/iwlegacy/4965.c @@ -1913,7 +1913,6 @@ struct il_cfg il4965_cfg = { .use_bsm = true, .led_compensation = 61, .chain_noise_num_beacons = IL4965_CAL_NUM_BEACONS, - .wd_timeout = IL_DEF_WD_TIMEOUT, .temperature_kelvin = true, .ucode_tracing = true, .sensitivity_calib_by_driver = true, diff --git a/drivers/net/wireless/intel/iwlegacy/common.c b/drivers/net/wireless/intel/iwlegacy/common.c index 0bb807ff8edf..c6a593e9cea0 100644 --- a/drivers/net/wireless/intel/iwlegacy/common.c +++ b/drivers/net/wireless/intel/iwlegacy/common.c @@ -4772,9 +4772,7 @@ il_check_stuck_queue(struct il_priv *il, int cnt) return 0; } - timeout = - txq->time_stamp + - msecs_to_jiffies(il->cfg->wd_timeout); + timeout = txq->time_stamp + msecs_to_jiffies(IL_WD_TIMEOUT); if (time_after(now, timeout)) { IL_ERR("Queue %d stuck for %u ms.\n", q->id, @@ -4786,12 +4784,6 @@ il_check_stuck_queue(struct il_priv *il, int cnt) return 0; } -/* - * Making watchdog tick be a quarter of timeout assure we will - * discover the queue hung between timeout and 1.25*timeout - */ -#define IL_WD_TICK(timeout) ((timeout) / 4) - /* * Watchdog timer callback, we check each tx queue for stuck, if hung * we reset the firmware. If everything is fine just rearm the timer. @@ -4801,15 +4793,10 @@ il_bg_watchdog(struct timer_list *t) { struct il_priv *il = timer_container_of(il, t, watchdog); int cnt; - unsigned long timeout; if (test_bit(S_EXIT_PENDING, &il->status)) return; - timeout = il->cfg->wd_timeout; - if (timeout == 0) - return; - /* monitor and check for stuck cmd queue */ if (il_check_stuck_queue(il, il->cmd_queue)) return; @@ -4823,24 +4810,10 @@ il_bg_watchdog(struct timer_list *t) return; } - mod_timer(&il->watchdog, - jiffies + msecs_to_jiffies(IL_WD_TICK(timeout))); + mod_timer(&il->watchdog, jiffies + msecs_to_jiffies(IL_WD_TICK)); } EXPORT_SYMBOL(il_bg_watchdog); -void -il_setup_watchdog(struct il_priv *il) -{ - unsigned int timeout = il->cfg->wd_timeout; - - if (timeout) - mod_timer(&il->watchdog, - jiffies + msecs_to_jiffies(IL_WD_TICK(timeout))); - else - timer_delete(&il->watchdog); -} -EXPORT_SYMBOL(il_setup_watchdog); - /* * extended beacon time format * time in usec will be changed into a 32-bit value in extended:internal format diff --git a/drivers/net/wireless/intel/iwlegacy/common.h b/drivers/net/wireless/intel/iwlegacy/common.h index 21f1c7702add..260e6b971d00 100644 --- a/drivers/net/wireless/intel/iwlegacy/common.h +++ b/drivers/net/wireless/intel/iwlegacy/common.h @@ -1085,9 +1085,9 @@ struct traffic_stats { #define IL_DELAY_NEXT_FORCE_FW_RELOAD (HZ*5) /* TX queue watchdog timeouts in mSecs */ -#define IL_DEF_WD_TIMEOUT (2000) -#define IL_LONG_WD_TIMEOUT (10000) -#define IL_MAX_WD_TIMEOUT (120000) +#define IL_WD_TIMEOUT 2000 +/* Discover the queue hung between timeout and 1.25*timeout */ +#define IL_WD_TICK (IL_WD_TIMEOUT / 4) struct il_force_reset { int reset_request_count; @@ -1683,7 +1683,6 @@ struct il_cfg { u16 led_compensation; int chain_noise_num_beacons; - unsigned int wd_timeout; bool temperature_kelvin; const bool ucode_tracing; const bool sensitivity_calib_by_driver; @@ -1764,7 +1763,7 @@ int il_tx_queue_init(struct il_priv *il, u32 txq_id); void il_tx_queue_reset(struct il_priv *il, u32 txq_id); void il_tx_queue_unmap(struct il_priv *il, int txq_id); void il_tx_queue_free(struct il_priv *il, int txq_id); -void il_setup_watchdog(struct il_priv *il); + /***************************************************** * TX power ****************************************************/ diff --git a/drivers/net/wireless/intel/iwlegacy/debug.c b/drivers/net/wireless/intel/iwlegacy/debug.c index 8a9f79ff1c6e..a7db62f75d7a 100644 --- a/drivers/net/wireless/intel/iwlegacy/debug.c +++ b/drivers/net/wireless/intel/iwlegacy/debug.c @@ -1265,30 +1265,6 @@ il_dbgfs_force_reset_write(struct file *file, const char __user *user_buf, return ret ? ret : count; } -static ssize_t -il_dbgfs_wd_timeout_write(struct file *file, const char __user *user_buf, - size_t count, loff_t *ppos) -{ - - struct il_priv *il = file->private_data; - char buf[8]; - int buf_size; - int timeout; - - memset(buf, 0, sizeof(buf)); - buf_size = min(count, sizeof(buf) - 1); - if (copy_from_user(buf, user_buf, buf_size)) - return -EFAULT; - if (sscanf(buf, "%d", &timeout) != 1) - return -EINVAL; - if (timeout < 0 || timeout > IL_MAX_WD_TIMEOUT) - timeout = IL_DEF_WD_TIMEOUT; - - il->cfg->wd_timeout = timeout; - il_setup_watchdog(il); - return count; -} - DEBUGFS_READ_FILE_OPS(rx_stats); DEBUGFS_READ_FILE_OPS(tx_stats); DEBUGFS_READ_FILE_OPS(rx_queue); @@ -1306,7 +1282,6 @@ DEBUGFS_READ_WRITE_FILE_OPS(missed_beacon); DEBUGFS_READ_WRITE_FILE_OPS(force_reset); DEBUGFS_READ_FILE_OPS(rxon_flags); DEBUGFS_READ_FILE_OPS(rxon_filter_flags); -DEBUGFS_WRITE_FILE_OPS(wd_timeout); /* * Create the debugfs files and directories @@ -1353,7 +1328,6 @@ il_dbgfs_register(struct il_priv *il, const char *name) DEBUGFS_ADD_FILE(chain_noise, dir_debug, 0400); DEBUGFS_ADD_FILE(rxon_flags, dir_debug, 0200); DEBUGFS_ADD_FILE(rxon_filter_flags, dir_debug, 0200); - DEBUGFS_ADD_FILE(wd_timeout, dir_debug, 0200); if (il->cfg->sensitivity_calib_by_driver) DEBUGFS_ADD_BOOL(disable_sensitivity, dir_rf, &il->disable_sens_cal); -- 2.50.1