Message ID | 20250126083850.34623-1-liuchao173@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | watchdog: only print critical log when the watchdog fails to be stopped | expand |
On 1/26/25 00:38, Liu Chao wrote: > Every time the user echoes 0 > /dev/watchdog0, meaningless critical log > is printed. > It is not meaningless, and it will still be displayed after this change, making the change pointless. Guenter > Signed-off-by: Liu Chao <liuchao173@huawei.com> > --- > 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); >
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);
Every time the user echoes 0 > /dev/watchdog0, meaningless critical log is printed. Signed-off-by: Liu Chao <liuchao173@huawei.com> --- drivers/watchdog/watchdog_dev.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)