2022-04-04 07:43:20

by Farber, Eliav

[permalink] [raw]
Subject: [PATCH] watchdog: sp805: disable watchdog on remove

Disable the watchdog if it is active while removing the module.
It is necessary in order to prevent a reset in case watchdog
hw was running before the removal.

Signed-off-by: Eliav Farber <[email protected]>
---
drivers/watchdog/sp805_wdt.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c
index d8876fba686d..d7dc0f3f16ec 100644
--- a/drivers/watchdog/sp805_wdt.c
+++ b/drivers/watchdog/sp805_wdt.c
@@ -311,6 +311,9 @@ static int sp805_wdt_remove(struct amba_device *adev)
{
struct sp805_wdt *wdt = amba_get_drvdata(adev);

+ if (watchdog_active(&wdt->wdd))
+ wdt_disable(&wdt->wdd);
+
watchdog_unregister_device(&wdt->wdd);
watchdog_set_drvdata(&wdt->wdd, NULL);

--
2.32.0


2022-04-04 23:15:24

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] watchdog: sp805: disable watchdog on remove

On 4/2/22 22:22, Eliav Farber wrote:
> Disable the watchdog if it is active while removing the module.
> It is necessary in order to prevent a reset in case watchdog
> hw was running before the removal.
>
> Signed-off-by: Eliav Farber <[email protected]>
> ---
> drivers/watchdog/sp805_wdt.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c
> index d8876fba686d..d7dc0f3f16ec 100644
> --- a/drivers/watchdog/sp805_wdt.c
> +++ b/drivers/watchdog/sp805_wdt.c
> @@ -311,6 +311,9 @@ static int sp805_wdt_remove(struct amba_device *adev)
> {
> struct sp805_wdt *wdt = amba_get_drvdata(adev);
>
> + if (watchdog_active(&wdt->wdd))
> + wdt_disable(&wdt->wdd);
> +

Why not use watchdog_stop_on_unregister() ?

Guenter

> watchdog_unregister_device(&wdt->wdd);
> watchdog_set_drvdata(&wdt->wdd, NULL);
>

2022-04-15 23:14:35

by Farber, Eliav

[permalink] [raw]
Subject: Re: [UNVERIFIED SENDER] Re: [PATCH] watchdog: sp805: disable watchdog on remove

On 4/3/2022 8:41 AM, Guenter Roeck wrote:
> Why not use watchdog_stop_on_unregister() ?

I'll use watchdog_stop_on_unregister() instead of my change.