From: Guenter Roeck <linux@roeck-us.net>
To: Charles Haithcock <chaithco@redhat.com>,
wim@linux-watchdog.org, linux-watchdog@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Differentiate scenarios when watchdog is closed
Date: Thu, 27 Aug 2026 09:01:47 -0700 [thread overview]
Message-ID: <2bd566ca-2696-46d3-aeec-57db66fa1902@roeck-us.net> (raw)
In-Reply-To: <20260824205051.4117285-2-chaithco@redhat.com>
On 8/24/26 13:50, Charles Haithcock wrote:
> Presenty, when a watchdog device is closed, we print "watchdog did not
Presently
Also, the subject should start with the subsystem name ("watchdog:")
> stop" in a few different scenarios;
>
> 1. When nowayout is set
> 2. When the watchdog is able to close, has received the magic character
> to stop, but fails to close in device-specific code paths
> 3. When userspace delierately closes it without stopping it
deliberately
>
> For 1, we explicitly print we can not close because of nowayout. Nothing
> differentiates the other two however.
>
> This change adds a print to indicate the watchdog was closed while still
> running.
>
> Signed-off-by: Charles Haithcock <chaithco@redhat.com>
> ---
>
> drivers/watchdog/watchdog_dev.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c
> index d7895009a2..a571dea353 100644
> --- a/drivers/watchdog/watchdog_dev.c
> +++ b/drivers/watchdog/watchdog_dev.c
> @@ -955,14 +955,17 @@ 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 the watchdog was not stopped, send a keepalive ping */
> - if (err < 0) {
> - pr_crit("watchdog%d: watchdog did not stop!\n", wdd->id);
> - watchdog_ping(wdd);
> + /* If the watchdog was not stopped, send a keepalive ping */
> + if (err < 0) {
> + pr_crit("watchdog%d: watchdog did not stop!\n", wdd->id);
> + watchdog_ping(wdd);
> + }
> }
> + else
> + pr_info("watchdog%d: closing while running!\n", wdd->id);
As Sashiko points out, this changes behavior if the watchdog is active
and was not stopped. Also, I personally find "closing while running"
not very informative. Also, while technically userspace may close the
watchdog deliberately while it is running, that is not what happens
on a regular basis. I find the previous unconditional "watchdog did
not stop" message more informative and relevant.
If you want to make a change, I would suggest to add an error message
into watchdog_stop() to report an error if the stop callback returns
an error. That would distinguish 2/3 without making functional changes.
Thanks,
Guenter
next prev parent reply other threads:[~2026-08-27 16:01 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-24 20:50 [PATCH] Differentiate scenarios when watchdog is closed Charles Haithcock
2026-08-24 21:07 ` sashiko-bot
2026-08-27 16:01 ` Guenter Roeck [this message]
2026-08-27 17:09 ` chaithco
2026-08-27 18:10 ` Guenter Roeck
2026-08-31 20:05 ` chaithco
2026-09-01 16:06 ` Guenter Roeck
2026-09-01 21:44 ` chaithco
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2bd566ca-2696-46d3-aeec-57db66fa1902@roeck-us.net \
--to=linux@roeck-us.net \
--cc=chaithco@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=wim@linux-watchdog.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.