Re: Stopping watchdog in watchdog driver remove functions

From: Guenter Roeck
Date: Sun Jan 01 2017 - 11:52:24 EST


On 01/01/2017 03:14 AM, Wim Van Sebroeck wrote:
Hi Guenter,

I noticed that several watchdog drivers stop the watchdog in trhe driver
remove function.
A non-exhaustive list of drivers doing that is

drivers/watchdog/bcm7038_wdt.c
drivers/watchdog/cadence_wdt.c
drivers/watchdog/imgpdc_wdt.c
drivers/watchdog/jz4740_wdt.c
drivers/watchdog/kempld_wdt.c
drivers/watchdog/max77620_wdt.c
drivers/watchdog/moxart_wdt.c
drivers/watchdog/sama5d4_wdt.c
drivers/watchdog/tangox_wdt.c
drivers/watchdog/tegra_wdt.c

Since a watchdog has to be closed for its driver to be removable, one
situation
where a watchdog is still running on unload is where the watchdog was
opened but
not closed properly (eg by killing the watchdog application, or if the
'nowayout'
flag is set).

Given that, does it even make sense to stop the watchdog in the remove
function ?
Should it even be permitted ?

From an API point of view: if WDIOF_MAGICCLOSE is being used then the watchdog
_SHOULD_ continue to run when the watchdog was not properly closed (which
normally also results in a reboot of the system).
if WDIOF_MAGICCLOSE is not being used then closing the watchdog device means
that the driver needs to stop the watchdog.

All the above have WDIOF_MAGICCLOSE set. Does that mean they should not stop
the watchdog on remove ?

Happy new year everyone !

Guenter