]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
watchdog: Fix kref imbalance seen if handle_boot_enabled=0
authorGuenter Roeck <linux@roeck-us.net>
Mon, 25 Sep 2017 16:17:02 +0000 (09:17 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 24 Mar 2018 10:02:46 +0000 (11:02 +0100)
commit449c24e264d9fb063ddd8751ebc65e7bb7296ebe
treee3f6869d1d9b6aa24a3644df9d2587e53f396e27
parent3122d2f18ed9a40a48f8feb939ed13e77d4ebf62
watchdog: Fix kref imbalance seen if handle_boot_enabled=0

[ Upstream commit 914d65f3f013ba2556c7beec5d3baac7b3292504 ]

If handle_boot_enabled is set to 0, the watchdog driver module use
counter will not be increased and kref_get() will not be called when
registering the watchdog. Subsequently, on open, this does not happen
either because the code believes that it was already done because the
hardware watchdog is marked as running.

We could introduce a state variable to indicate this state, but let's
just increase the module use counter and call kref_get() unconditionally
if the hardware watchdog is running when a driver is registering itself
to keep the code simple.

Fixes: 2501b015313fe ("watchdog: core: add option to avoid early ...")
Cc: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/watchdog/watchdog_dev.c