Skip to content

Commit

Permalink
watchdog: core: propagate ping error code to the user space
Browse files Browse the repository at this point in the history
Watchdog ping return errors are ignored by watchdog core,
Whatchdog daemon should be informed about possible hardware error or
underlaying device driver get unregistered.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
  • Loading branch information
Alexander Usyskin authored and Wim Van Sebroeck committed Nov 3, 2015
1 parent bc794ac commit 5ef7966
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions drivers/watchdog/watchdog_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ static ssize_t watchdog_write(struct file *file, const char __user *data,
struct watchdog_device *wdd = file->private_data;
size_t i;
char c;
int err;

if (len == 0)
return 0;
Expand All @@ -313,7 +314,9 @@ static ssize_t watchdog_write(struct file *file, const char __user *data,
}

/* someone wrote to us, so we send the watchdog a keepalive ping */
watchdog_ping(wdd);
err = watchdog_ping(wdd);
if (err < 0)
return err;

return len;
}
Expand Down Expand Up @@ -369,8 +372,7 @@ static long watchdog_ioctl(struct file *file, unsigned int cmd,
case WDIOC_KEEPALIVE:
if (!(wdd->info->options & WDIOF_KEEPALIVEPING))
return -EOPNOTSUPP;
watchdog_ping(wdd);
return 0;
return watchdog_ping(wdd);
case WDIOC_SETTIMEOUT:
if (get_user(val, p))
return -EFAULT;
Expand All @@ -380,7 +382,9 @@ static long watchdog_ioctl(struct file *file, unsigned int cmd,
/* If the watchdog is active then we send a keepalive ping
* to make sure that the watchdog keep's running (and if
* possible that it takes the new timeout) */
watchdog_ping(wdd);
err = watchdog_ping(wdd);
if (err < 0)
return err;
/* Fall */
case WDIOC_GETTIMEOUT:
/* timeout == 0 means that we don't know the timeout */
Expand Down

0 comments on commit 5ef7966

Please sign in to comment.