From cd306e81612f042ad08473f9c00a2c29e38701ab Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 29 Apr 2025 14:00:13 +0100 Subject: [PATCH] watchdog: Reduce severity of release without stop Distinguish between releasing the watchdog without requesting that it is stopped, and failing to stop it when requested. The former is standard behaviour for systemd, while the latter may be unexpected. Signed-off-by: Phil Elwell --- drivers/watchdog/watchdog_dev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index 4190cb800cc45d..c7499e9127fc3b 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -943,7 +943,7 @@ static int watchdog_release(struct inode *inode, struct file *file) { struct watchdog_core_data *wd_data = file->private_data; struct watchdog_device *wdd; - int err = -EBUSY; + int err = EBUSY; /* +ve because this may be expected behaviour */ bool running; mutex_lock(&wd_data->lock); @@ -967,6 +967,9 @@ static int watchdog_release(struct inode *inode, struct file *file) if (err < 0) { pr_crit("watchdog%d: watchdog did not stop!\n", wdd->id); watchdog_ping(wdd); + } else if (err > 0) { + pr_info("watchdog%d: watchdog left running\n", wdd->id); + watchdog_ping(wdd); } watchdog_update_worker(wdd);