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 <phil@raspberrypi.com>
This commit is contained in:
Phil Elwell
2025-04-29 14:00:13 +01:00
committed by Dom Cobley
parent 6ec89ccc46
commit 1c6197f436

View File

@@ -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);