From: Franck Bui Date: Mon, 6 Sep 2021 10:42:50 +0000 (+0200) Subject: watchdog: no need to ping the device twice in watchdog_ping() if the device has just... X-Git-Tag: v250-rc1~670^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e94f9e720cda332b1c9f209cb579ba5bf7d82c61;p=thirdparty%2Fsystemd.git watchdog: no need to ping the device twice in watchdog_ping() if the device has just been opened --- diff --git a/src/shared/watchdog.c b/src/shared/watchdog.c index c49972c8296..98532dbcb47 100644 --- a/src/shared/watchdog.c +++ b/src/shared/watchdog.c @@ -138,11 +138,14 @@ usec_t watchdog_runtime_wait(void) { int watchdog_ping(void) { usec_t ntime; - int r; if (!timestamp_is_set(watchdog_timeout)) return 0; + if (watchdog_fd < 0) + /* open_watchdog() will automatically ping the device for us if necessary */ + return open_watchdog(); + ntime = now(clock_boottime_or_monotonic()); /* Never ping earlier than watchdog_timeout/4 and try to ping @@ -153,12 +156,6 @@ int watchdog_ping(void) { return 0; } - if (watchdog_fd < 0) { - r = open_watchdog(); - if (r < 0) - return r; - } - if (ioctl(watchdog_fd, WDIOC_KEEPALIVE, 0) < 0) return log_warning_errno(errno, "Failed to ping hardware watchdog: %m");