2022-04-26 07:50:26

by Liu Xinpeng

[permalink] [raw]
Subject: [PATCH v3 0/4] Some Impovements about watchdog

Changelog:
v1->v2 Update the commit messages
v2->v3 - Add the context about why using watchdog_timeout_invalid.
- Using SET_NOIRQ_SYSTEM_SLEEP_PM_OPS reduces redundant code for
iTCO watchdog.

Liu Xinpeng (4):
watchdog: wdat_wdg: Using the existed function to check parameter
timeout
watchdog: wdat_wdg: Stop watchdog when rebooting the system
watchdog: wdat_wdg: Stop watchdog when uninstalling module
watchdog: iTCO_wdg: Make code more clearly with macro definition

drivers/watchdog/iTCO_wdt.c | 12 +++---------
drivers/watchdog/wdat_wdt.c | 7 +++++--
2 files changed, 8 insertions(+), 11 deletions(-)

--
2.23.0


2022-04-26 09:30:50

by Liu Xinpeng

[permalink] [raw]
Subject: [PATCH v3 2/4] watchdog: wdat_wdg: Stop watchdog when rebooting the system

Executing reboot command several times on the machine "Dell
PowerEdge R740", UEFI security detection stopped machine
with the following prompt:

UEFI0082: The system was reset due to a timeout from the watchdog
timer. Check the System Event Log (SEL) or crash dumps from
Operating Sysstem to identify the source that triggered the
watchdog timer reset. Update the firmware or driver for the
identified device.

iDRAC has warning event: "The watchdog timer reset the system".

This patch fixes this issue by adding the reboot notifier.

Signed-off-by: Liu Xinpeng <[email protected]>
---
drivers/watchdog/wdat_wdt.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/watchdog/wdat_wdt.c b/drivers/watchdog/wdat_wdt.c
index 3040a0554055..609922ed4744 100644
--- a/drivers/watchdog/wdat_wdt.c
+++ b/drivers/watchdog/wdat_wdt.c
@@ -463,6 +463,7 @@ static int wdat_wdt_probe(struct platform_device *pdev)
return ret;

watchdog_set_nowayout(&wdat->wdd, nowayout);
+ watchdog_stop_on_reboot(&wdat->wdd);
return devm_watchdog_register_device(dev, &wdat->wdd);
}

--
2.23.0

2022-04-26 13:07:41

by Liu Xinpeng

[permalink] [raw]
Subject: [PATCH v3 3/4] watchdog: wdat_wdg: Stop watchdog when uninstalling module

Test shows that wachdog still reboots machine after the module
is removed. Use watchdog_stop_on_unregister to stop the watchdog
on removing.

Signed-off-by: Liu Xinpeng <[email protected]>
---
drivers/watchdog/wdat_wdt.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/watchdog/wdat_wdt.c b/drivers/watchdog/wdat_wdt.c
index 609922ed4744..502da41ac0b2 100644
--- a/drivers/watchdog/wdat_wdt.c
+++ b/drivers/watchdog/wdat_wdt.c
@@ -464,6 +464,7 @@ static int wdat_wdt_probe(struct platform_device *pdev)

watchdog_set_nowayout(&wdat->wdd, nowayout);
watchdog_stop_on_reboot(&wdat->wdd);
+ watchdog_stop_on_unregister(&wdat->wdd);
return devm_watchdog_register_device(dev, &wdat->wdd);
}

--
2.23.0