[PATCH master 1/2] sandbox: watchdog: don't return positive values from set_timeout

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Apr 26 12:34:07 BST 2021


linux_watchdog_set_timeout() does return alarm(), which can never fail
and returns either zero or a positive value.

watchdog::set_timeout on the other hand should return either 0 or
a negative number on error.

Ignore linux_watchdog_set_timeout()'s return value, so
watchdog_set_timeout propagates the correct value.

This fixes an issue where seconds_to_expire wasn't updated on
subsequent pings of this watchdog.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 arch/sandbox/board/watchdog.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/sandbox/board/watchdog.c b/arch/sandbox/board/watchdog.c
index 336451282fd3..e1cff7a0bf0b 100644
--- a/arch/sandbox/board/watchdog.c
+++ b/arch/sandbox/board/watchdog.c
@@ -29,7 +29,8 @@ static int sandbox_watchdog_set_timeout(struct watchdog *wdd, unsigned int timeo
 	if (timeout > wdd->timeout_max)
 		return -EINVAL;
 
-	return linux_watchdog_set_timeout(timeout);
+	linux_watchdog_set_timeout(timeout);
+	return 0;
 }
 
 static int sandbox_watchdog_probe(struct device_d *dev)
-- 
2.29.2




More information about the barebox mailing list