watchdog: wdat_wdt: Using the existing function to check parameter timeout
authorLiu Xinpeng <liuxp11@chinatelecom.cn>
Tue, 26 Apr 2022 14:53:28 +0000 (22:53 +0800)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Sat, 21 May 2022 08:09:29 +0000 (10:09 +0200)
If max_hw_heartbeat_ms is provided, the configured maximum timeout is not
limited by it. The limit check in this driver therefore doesn't make much
sense. Similar, the watchdog core ensures that minimum timeout limits are
met if min_hw_heartbeat_ms is set. Using watchdog_timeout_invalid() makes
more sense because it takes this into account.

Signed-off-by: Liu Xinpeng <liuxp11@chinatelecom.cn>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/1650984810-6247-2-git-send-email-liuxp11@chinatelecom.cn
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
drivers/watchdog/wdat_wdt.c

index 195c8c004b69d70c213d4d3588ec4bacb8d5e8ce..df0865a61a702346edf96213d41fecee522c8f96 100644 (file)
@@ -344,6 +344,7 @@ static int wdat_wdt_probe(struct platform_device *pdev)
        wdat->period = tbl->timer_period;
        wdat->wdd.min_hw_heartbeat_ms = wdat->period * tbl->min_count;
        wdat->wdd.max_hw_heartbeat_ms = wdat->period * tbl->max_count;
+       wdat->wdd.min_timeout = 1;
        wdat->stopped_in_sleep = tbl->flags & ACPI_WDAT_STOPPED;
        wdat->wdd.info = &wdat_wdt_info;
        wdat->wdd.ops = &wdat_wdt_ops;
@@ -450,8 +451,7 @@ static int wdat_wdt_probe(struct platform_device *pdev)
         * watchdog properly after it has opened the device. In some cases
         * the BIOS default is too short and causes immediate reboot.
         */
-       if (timeout * 1000 < wdat->wdd.min_hw_heartbeat_ms ||
-           timeout * 1000 > wdat->wdd.max_hw_heartbeat_ms) {
+       if (watchdog_timeout_invalid(&wdat->wdd, timeout)) {
                dev_warn(dev, "Invalid timeout %d given, using %d\n",
                         timeout, WDAT_DEFAULT_TIMEOUT);
                timeout = WDAT_DEFAULT_TIMEOUT;