2021-01-14 08:20:04

by Zhao Qiang

[permalink] [raw]
Subject: [PATCH] watchdog: stop wdd when watchdog hw running in reboot_notifier

From: Zhao Qiang <[email protected]>

In watchdog_reboot_notifier, wdd should be stopped when the device
is in hw_running state

Signed-off-by: Zhao Qiang <[email protected]>
---
drivers/watchdog/watchdog_core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c
index 861daf4..ec670cc 100644
--- a/drivers/watchdog/watchdog_core.c
+++ b/drivers/watchdog/watchdog_core.c
@@ -154,7 +154,7 @@ static int watchdog_reboot_notifier(struct notifier_block *nb,

wdd = container_of(nb, struct watchdog_device, reboot_nb);
if (code == SYS_DOWN || code == SYS_HALT) {
- if (watchdog_active(wdd)) {
+ if (watchdog_active(wdd) || watchdog_hw_running(wdd)) {
int ret;

ret = wdd->ops->stop(wdd);
--
2.7.4


2021-01-23 17:28:33

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] watchdog: stop wdd when watchdog hw running in reboot_notifier

On Thu, Jan 14, 2021 at 04:26:51PM +0800, Qiang Zhao wrote:
> From: Zhao Qiang <[email protected]>
>
> In watchdog_reboot_notifier, wdd should be stopped when the device
> is in hw_running state
>
> Signed-off-by: Zhao Qiang <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
> drivers/watchdog/watchdog_core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c
> index 861daf4..ec670cc 100644
> --- a/drivers/watchdog/watchdog_core.c
> +++ b/drivers/watchdog/watchdog_core.c
> @@ -154,7 +154,7 @@ static int watchdog_reboot_notifier(struct notifier_block *nb,
>
> wdd = container_of(nb, struct watchdog_device, reboot_nb);
> if (code == SYS_DOWN || code == SYS_HALT) {
> - if (watchdog_active(wdd)) {
> + if (watchdog_active(wdd) || watchdog_hw_running(wdd)) {
> int ret;
>
> ret = wdd->ops->stop(wdd);