On Mon, 15.06.15 18:14, Jean Delvare (jdelv...@suse.de) wrote: > 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.
Isn't this something that should be fixed in the drivers? > --- > 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; If this is something to fix in systemd, rather than fix in the drivers: am pretty sure that we should log in all cases, but change the log level to LOG_DEBUG if its ENOTTY. i.e. use "log_full(errno == ENOTTY ? LOG_DEBUG : LOG_WARNING"... Lennart -- Lennart Poettering, Red Hat _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel