提交 9a438b1c 编写于 作者: L Liu Xinpeng 提交者: Yunying Sun

watchdog: wdat_wdt: Using the existing function to check parameter timeout

mainline inclusion
from mainline-v5.19-rc1
commit 6d72c7ac
category: bugfix
bugzilla: https://gitee.com/openeuler/intel-kernel/issues/I596BF

Intel-SIG: commit 6d72c7ac watchdog: wdat_wdt: Using the existing
function to check parameter timeout

-------------------------------------

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: NLiu Xinpeng <liuxp11@chinatelecom.cn>
Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/1650984810-6247-2-git-send-email-liuxp11@chinatelecom.cnSigned-off-by: NGuenter Roeck <linux@roeck-us.net>
Signed-off-by: NWim Van Sebroeck <wim@linux-watchdog.org>
Signed-off-by: NYunying Sun <yunying.sun@intel.com>
上级 0d7c510f
...@@ -344,6 +344,7 @@ static int wdat_wdt_probe(struct platform_device *pdev) ...@@ -344,6 +344,7 @@ static int wdat_wdt_probe(struct platform_device *pdev)
wdat->period = tbl->timer_period; wdat->period = tbl->timer_period;
wdat->wdd.min_hw_heartbeat_ms = wdat->period * tbl->min_count; wdat->wdd.min_hw_heartbeat_ms = wdat->period * tbl->min_count;
wdat->wdd.max_hw_heartbeat_ms = wdat->period * tbl->max_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->stopped_in_sleep = tbl->flags & ACPI_WDAT_STOPPED;
wdat->wdd.info = &wdat_wdt_info; wdat->wdd.info = &wdat_wdt_info;
wdat->wdd.ops = &wdat_wdt_ops; wdat->wdd.ops = &wdat_wdt_ops;
...@@ -450,8 +451,7 @@ static int wdat_wdt_probe(struct platform_device *pdev) ...@@ -450,8 +451,7 @@ static int wdat_wdt_probe(struct platform_device *pdev)
* watchdog properly after it has opened the device. In some cases * watchdog properly after it has opened the device. In some cases
* the BIOS default is too short and causes immediate reboot. * the BIOS default is too short and causes immediate reboot.
*/ */
if (timeout * 1000 < wdat->wdd.min_hw_heartbeat_ms || if (watchdog_timeout_invalid(&wdat->wdd, timeout)) {
timeout * 1000 > wdat->wdd.max_hw_heartbeat_ms) {
dev_warn(dev, "Invalid timeout %d given, using %d\n", dev_warn(dev, "Invalid timeout %d given, using %d\n",
timeout, WDAT_DEFAULT_TIMEOUT); timeout, WDAT_DEFAULT_TIMEOUT);
timeout = WDAT_DEFAULT_TIMEOUT; timeout = WDAT_DEFAULT_TIMEOUT;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册