WDIOC_SETTIMEOUT and WDIOC_GETTIMEOUT returned the initial timeout and
not the one that was last set. Fix this by updating struct
watchdog_device member 'timeout'. This is how it's supposed to be done
according to Documentation/watchdog/watchdog-kernel-api.txt.
This is the test case I used:
#include <fcntl.h>
#include <linux/watchdog.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <assert.h>
#include <stdlib.h>
static const int TIMEOUT = 127;
int main(void)
{
int fd = open("/dev/watchdog", O_WRONLY);
if (fd == -1)
return EXIT_FAILURE;
int timeout = TIMEOUT;
ioctl(fd, WDIOC_SETTIMEOUT, &timeout);
assert(timeout == TIMEOUT);
close(fd);
return EXIT_SUCCESS;
}
Signed-off-by: Markus Rinne <markus.rinne@xxxxxxxxx>
---