Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754161AbcLLJ2U (ORCPT ); Mon, 12 Dec 2016 04:28:20 -0500 Received: from mail02.prevas.se ([62.95.78.10]:62855 "EHLO mail02.prevas.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751677AbcLLJ2J (ORCPT ); Mon, 12 Dec 2016 04:28:09 -0500 X-IronPort-AV: E=Sophos;i="5.33,334,1477954800"; d="scan'208";a="1526196" From: Rasmus Villemoes To: , CC: Rasmus Villemoes , Guenter Roeck Subject: [PATCH v2 0/2] watchdog: allow setting deadline for opening /dev/watchdogN Date: Mon, 12 Dec 2016 10:17:51 +0100 Message-ID: <1481534273-7600-1-git-send-email-rasmus.villemoes@prevas.dk> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1468487788-22457-1-git-send-email-rasmus.villemoes@prevas.dk> References: <1468487788-22457-1-git-send-email-rasmus.villemoes@prevas.dk> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.16.8.31] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1400 Lines: 31 If a watchdog driver tells the framework that the device is running, the framework takes care of feeding the watchdog until userspace opens the device. If the userspace application which is supposed to do that never comes up properly, the watchdog is fed indefinitely by the kernel. This can be especially problematic for embedded devices. These patches allow one to set a maximum time for which the kernel will feed the watchdog, thus ensuring that either userspace has come up, or the board gets reset. This allows fallback logic in the bootloader to attempt some recovery (for example, if an automatic update is in progress, it could roll back to the previous version). The patches have been tested on a Raspberry Pi 2 (with a suitably modified driver for setting WDOG_HW_RUNNING) and a Wandboard. Changes since the initial RFC (https://lkml.org/lkml/2016/7/14/254): take the timeout value from the device tree node rather than a watchdog module parameter. Rasmus Villemoes (2): watchdog: introduce watchdog_worker_should_ping helper watchdog: introduce CONFIG_WATCHDOG_OPEN_DEADLINE drivers/watchdog/Kconfig | 19 +++++++++++++++++++ drivers/watchdog/watchdog_core.c | 17 +++++++++++++++++ drivers/watchdog/watchdog_dev.c | 38 +++++++++++++++++++++++++++++++++++++- include/linux/watchdog.h | 9 +++++++++ 4 files changed, 82 insertions(+), 1 deletion(-) -- 2.7.4