Thread (20 messages) read the whole thread 20 messages, 8 authors, 2014-05-07

[RFC PATCH 1/5] watchdog: Add API to trigger reboots

From: linux@roeck-us.net (Guenter Roeck)
Date: 2014-05-02 13:22:42
Also in: linux-watchdog, lkml

On 05/02/2014 03:01 AM, Will Deacon wrote:
Hi Guenter,

This looks pretty sensible to me (and the arm/arm64 bits look fine too), but
I have one question below...

On Thu, May 01, 2014 at 04:41:29PM +0100, Guenter Roeck wrote:
quoted
Some hardware implements reboot through its watchdog hardware,
for example by triggering a watchdog timeout. Platform specific
code starts to spread into watchdog drivers, typically by setting
pointers to a callback functions which is then called from the
platform reset handler.

To simplify code and provide a unified API to trigger reboots by
watchdog drivers, provide a single API to trigger such reboots
through the watchdog subsystem.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
  drivers/watchdog/watchdog_core.c |   17 +++++++++++++++++
  include/linux/watchdog.h         |   11 +++++++++++
  2 files changed, 28 insertions(+)
diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c
index cec9b55..4ec6e2f 100644
--- a/drivers/watchdog/watchdog_core.c
+++ b/drivers/watchdog/watchdog_core.c
@@ -43,6 +43,17 @@
  static DEFINE_IDA(watchdog_ida);
  static struct class *watchdog_class;

+static struct watchdog_device *wdd_reboot_dev;
+
+void watchdog_do_reboot(enum reboot_mode mode, const char *cmd)
+{
+	if (wdd_reboot_dev) {
+		if (wdd_reboot_dev->ops->reboot)
+			wdd_reboot_dev->ops->reboot(wdd_reboot_dev, mode, cmd);
+	}
+}
What reboot_mode values would you expect a watchdog to support other than
REBOOT_HARD? Also, is the cmd even useful here?
Answer is "I don't know" in both cases. I thought about dropping the parameters,
but then I thought it does not hurt to have them around either. I am open to
suggestions and to dropping the parameters if everyone agrees that they are
useless.

Guenter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help