Not all watchdog drivers implement WDIOC_SETOPTIONS. Drivers which do not implement it have their device always enabled. So it's fine to report an error if WDIOS_DISABLECARD is passed and the ioctl is not implemented, however failing when WDIOS_ENABLECARD is passed and the ioctl is not implemented is not good: if the device was already enabled then WDIOS_ENABLECARD was a no-op and wasn't needed in the first place. So we can just ignore the error and continue. --- src/shared/watchdog.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
--- a/src/shared/watchdog.c +++ b/src/shared/watchdog.c @@ -64,7 +64,8 @@ static int update_timeout(void) { flags = WDIOS_ENABLECARD; r = ioctl(watchdog_fd, WDIOC_SETOPTIONS, &flags); - if (r < 0) { + /* ENOTTY means the watchdog is always enabled so we're fine */ + if (r < 0 && errno != ENOTTY) { log_warning("Failed to enable hardware watchdog: %m"); return -errno; } -- Jean Delvare SUSE L3 Support _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel