From 564096795eb385c8216cb67c0fe894edccc39dde Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Mon, 6 Sep 2021 12:12:45 +0200 Subject: [PATCH] watchdog: update watchdog_timeout with the closest timeout found by the driver Store the actual timeout value found by the driver in watchdog_timeout since this value is more accurate for calculating the next time for pinging the device. --- src/shared/watchdog.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/shared/watchdog.c b/src/shared/watchdog.c index c57dafbca5..c49972c829 100644 --- a/src/shared/watchdog.c +++ b/src/shared/watchdog.c @@ -40,7 +40,12 @@ static int update_timeout(void) { if (ioctl(watchdog_fd, WDIOC_SETTIMEOUT, &sec) < 0) return log_warning_errno(errno, "Failed to set timeout to %is: %m", sec); - log_info("Set hardware watchdog to %s.", FORMAT_TIMESPAN(sec * USEC_PER_SEC, 0)); + /* Just in case the driver is buggy */ + assert(sec > 0); + + /* watchdog_timeout stores the actual timeout used by the HW */ + watchdog_timeout = sec * USEC_PER_SEC; + log_info("Set hardware watchdog to %s.", FORMAT_TIMESPAN(watchdog_timeout, 0)); flags = WDIOS_ENABLECARD; if (ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags) < 0) {