All of lore.kernel.org
 help / color / mirror / Atom feed
* Patch "watchdog: Fix kref imbalance seen if handle_boot_enabled=0" has been added to the 4.15-stable tree
@ 2018-03-22 13:08 gregkh
  0 siblings, 0 replies; only message in thread
From: gregkh @ 2018-03-22 13:08 UTC (permalink / raw)
  To: linux, alexander.levin, gregkh, sebastian.reichel, wim
  Cc: stable, stable-commits


This is a note to let you know that I've just added the patch titled

    watchdog: Fix kref imbalance seen if handle_boot_enabled=0

to the 4.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     watchdog-fix-kref-imbalance-seen-if-handle_boot_enabled-0.patch
and it can be found in the queue-4.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.


>From foo@baz Thu Mar 22 14:03:39 CET 2018
From: Guenter Roeck <linux@roeck-us.net>
Date: Mon, 25 Sep 2017 09:17:02 -0700
Subject: watchdog: Fix kref imbalance seen if handle_boot_enabled=0

From: Guenter Roeck <linux@roeck-us.net>


[ 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 |   11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

--- a/drivers/watchdog/watchdog_dev.c
+++ b/drivers/watchdog/watchdog_dev.c
@@ -967,14 +967,13 @@ static int watchdog_cdev_register(struct
 	 * and schedule an immediate ping.
 	 */
 	if (watchdog_hw_running(wdd)) {
-		if (handle_boot_enabled) {
-			__module_get(wdd->ops->owner);
-			kref_get(&wd_data->kref);
+		__module_get(wdd->ops->owner);
+		kref_get(&wd_data->kref);
+		if (handle_boot_enabled)
 			queue_delayed_work(watchdog_wq, &wd_data->work, 0);
-		} else {
+		else
 			pr_info("watchdog%d running and kernel based pre-userspace handler disabled\n",
-					wdd->id);
-		}
+				wdd->id);
 	}
 
 	return 0;


Patches currently in stable-queue which might be from linux@roeck-us.net are

queue-4.15/watchdog-fix-potential-kref-imbalance-when-opening-watchdog.patch
queue-4.15/watchdog-fix-kref-imbalance-seen-if-handle_boot_enabled-0.patch

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-03-22 13:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-22 13:08 Patch "watchdog: Fix kref imbalance seen if handle_boot_enabled=0" has been added to the 4.15-stable tree gregkh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.