Every time the user echoes 0 > /dev/watchdog0, meaningless critical log is printed. Signed-off-by: Liu Chao <liuchao173@xxxxxxxxxx> --- drivers/watchdog/watchdog_dev.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index e2bd266b1b5b..0a9d5e6f3a88 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -960,14 +960,15 @@ static int watchdog_release(struct inode *inode, struct file *file) if (!watchdog_active(wdd)) err = 0; else if (test_and_clear_bit(_WDOG_ALLOW_RELEASE, &wd_data->status) || - !(wdd->info->options & WDIOF_MAGICCLOSE)) + !(wdd->info->options & WDIOF_MAGICCLOSE)) { err = watchdog_stop(wdd); + if (err < 0) + pr_crit("watchdog%d: watchdog did not stop!\n", wdd->id); + } /* If the watchdog was not stopped, send a keepalive ping */ - if (err < 0) { - pr_crit("watchdog%d: watchdog did not stop!\n", wdd->id); + if (err < 0) watchdog_ping(wdd); - } watchdog_update_worker(wdd); -- 2.23.0