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: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-24 20:50 Charles Haithcock
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®