From patchwork Fri Apr 22 23:05:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Xinpeng X-Patchwork-Id: 565206 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B5708C433F5 for ; Fri, 22 Apr 2022 23:24:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229803AbiDVX1I (ORCPT ); Fri, 22 Apr 2022 19:27:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45932 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229834AbiDVX0v (ORCPT ); Fri, 22 Apr 2022 19:26:51 -0400 Received: from chinatelecom.cn (prt-mail.chinatelecom.cn [42.123.76.228]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 49F99D4C41; Fri, 22 Apr 2022 16:05:37 -0700 (PDT) HMM_SOURCE_IP: 172.18.0.218:52490.1277573903 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-202.80.192.39 (unknown [172.18.0.218]) by chinatelecom.cn (HERMES) with SMTP id 6D9872800C3; Sat, 23 Apr 2022 07:05:33 +0800 (CST) X-189-SAVE-TO-SEND: +liuxp11@chinatelecom.cn Received: from ([172.18.0.218]) by app0025 with ESMTP id 0147b354fd014b6db670a427d3c9b8e5 for wim@linux-watchdog.org; Sat, 23 Apr 2022 07:05:35 CST X-Transaction-ID: 0147b354fd014b6db670a427d3c9b8e5 X-Real-From: liuxp11@chinatelecom.cn X-Receive-IP: 172.18.0.218 X-MEDUSA-Status: 0 Sender: liuxp11@chinatelecom.cn From: Liu Xinpeng To: wim@linux-watchdog.org, linux@roeck-us.net, groeck7@gmail.com Cc: linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, Liu Xinpeng Subject: [PATCH 1/3] watchdog: wdat_wdg: Checking the module parameter timeout Date: Sat, 23 Apr 2022 07:05:16 +0800 Message-Id: <1650668718-13626-1-git-send-email-liuxp11@chinatelecom.cn> X-Mailer: git-send-email 1.8.3.1 Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org Setting up min_time, and determine if the timeout value is invalid using the function watchdog_timeout_invalid. Signed-off-by: Liu Xinpeng --- drivers/watchdog/wdat_wdt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/wdat_wdt.c b/drivers/watchdog/wdat_wdt.c index 195c8c004b69..3040a0554055 100644 --- a/drivers/watchdog/wdat_wdt.c +++ b/drivers/watchdog/wdat_wdt.c @@ -14,6 +14,7 @@ #include #define MAX_WDAT_ACTIONS ACPI_WDAT_ACTION_RESERVED +#define WDAT_TIMEOUT_MIN 1 /** * struct wdat_instruction - Single ACPI WDAT instruction @@ -344,6 +345,7 @@ static int wdat_wdt_probe(struct platform_device *pdev) wdat->period = tbl->timer_period; wdat->wdd.min_hw_heartbeat_ms = wdat->period * tbl->min_count; wdat->wdd.max_hw_heartbeat_ms = wdat->period * tbl->max_count; + wdat->wdd.min_timeout = WDAT_TIMEOUT_MIN; wdat->stopped_in_sleep = tbl->flags & ACPI_WDAT_STOPPED; wdat->wdd.info = &wdat_wdt_info; wdat->wdd.ops = &wdat_wdt_ops; @@ -450,8 +452,7 @@ static int wdat_wdt_probe(struct platform_device *pdev) * watchdog properly after it has opened the device. In some cases * the BIOS default is too short and causes immediate reboot. */ - if (timeout * 1000 < wdat->wdd.min_hw_heartbeat_ms || - timeout * 1000 > wdat->wdd.max_hw_heartbeat_ms) { + if (watchdog_timeout_invalid(&wdat->wdd, timeout)) { dev_warn(dev, "Invalid timeout %d given, using %d\n", timeout, WDAT_DEFAULT_TIMEOUT); timeout = WDAT_DEFAULT_TIMEOUT; From patchwork Fri Apr 22 23:05:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Xinpeng X-Patchwork-Id: 565207 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CA9EFC433F5 for ; Fri, 22 Apr 2022 23:24:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231696AbiDVX06 (ORCPT ); Fri, 22 Apr 2022 19:26:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229803AbiDVX0v (ORCPT ); Fri, 22 Apr 2022 19:26:51 -0400 Received: from chinatelecom.cn (prt-mail.chinatelecom.cn [42.123.76.228]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4A420DC99A; Fri, 22 Apr 2022 16:05:38 -0700 (PDT) HMM_SOURCE_IP: 172.18.0.218:52490.1277573903 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-202.80.192.39 (unknown [172.18.0.218]) by chinatelecom.cn (HERMES) with SMTP id 8067B2800CD; Sat, 23 Apr 2022 07:05:35 +0800 (CST) X-189-SAVE-TO-SEND: +liuxp11@chinatelecom.cn Received: from ([172.18.0.218]) by app0025 with ESMTP id a4481372819c4a0ea076d0c58752f44c for wim@linux-watchdog.org; Sat, 23 Apr 2022 07:05:37 CST X-Transaction-ID: a4481372819c4a0ea076d0c58752f44c X-Real-From: liuxp11@chinatelecom.cn X-Receive-IP: 172.18.0.218 X-MEDUSA-Status: 0 Sender: liuxp11@chinatelecom.cn From: Liu Xinpeng To: wim@linux-watchdog.org, linux@roeck-us.net, groeck7@gmail.com Cc: linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, Liu Xinpeng Subject: [PATCH 2/3] watchdog: wdat_wdg: Fix the bug stucked after executing reboot Date: Sat, 23 Apr 2022 07:05:17 +0800 Message-Id: <1650668718-13626-2-git-send-email-liuxp11@chinatelecom.cn> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1650668718-13626-1-git-send-email-liuxp11@chinatelecom.cn> References: <1650668718-13626-1-git-send-email-liuxp11@chinatelecom.cn> Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org Reboot the machine Dell PowerEdge R740 several times, it will stuck with the following prompt: UEFI0082: The system was reset due to a timeout from the watchdog timer. Check the System Event Log (SEL) or crash dumps from Operating Sysstem to identify the source that triggered the watchdog timer reset. Update the firmware or driver for the identified device. iDRAC has warning event: "The watchdog timer reset the system". This patch fix this issue by adding the reboot notifier. Signed-off-by: Liu Xinpeng --- drivers/watchdog/wdat_wdt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/watchdog/wdat_wdt.c b/drivers/watchdog/wdat_wdt.c index 3040a0554055..609922ed4744 100644 --- a/drivers/watchdog/wdat_wdt.c +++ b/drivers/watchdog/wdat_wdt.c @@ -463,6 +463,7 @@ static int wdat_wdt_probe(struct platform_device *pdev) return ret; watchdog_set_nowayout(&wdat->wdd, nowayout); + watchdog_stop_on_reboot(&wdat->wdd); return devm_watchdog_register_device(dev, &wdat->wdd); } From patchwork Fri Apr 22 23:05:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Xinpeng X-Patchwork-Id: 565696 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 596D4C43217 for ; Fri, 22 Apr 2022 23:24:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231715AbiDVX06 (ORCPT ); Fri, 22 Apr 2022 19:26:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229621AbiDVX0v (ORCPT ); Fri, 22 Apr 2022 19:26:51 -0400 Received: from chinatelecom.cn (prt-mail.chinatelecom.cn [42.123.76.228]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C88B9E127E; Fri, 22 Apr 2022 16:05:40 -0700 (PDT) HMM_SOURCE_IP: 172.18.0.218:52490.1277573903 HMM_ATTACHE_NUM: 0000 HMM_SOURCE_TYPE: SMTP Received: from clientip-202.80.192.39 (unknown [172.18.0.218]) by chinatelecom.cn (HERMES) with SMTP id 9DF762800D7; Sat, 23 Apr 2022 07:05:37 +0800 (CST) X-189-SAVE-TO-SEND: +liuxp11@chinatelecom.cn Received: from ([172.18.0.218]) by app0025 with ESMTP id c4fda4f59878486ab68eb988c9b703cf for wim@linux-watchdog.org; Sat, 23 Apr 2022 07:05:39 CST X-Transaction-ID: c4fda4f59878486ab68eb988c9b703cf X-Real-From: liuxp11@chinatelecom.cn X-Receive-IP: 172.18.0.218 X-MEDUSA-Status: 0 Sender: liuxp11@chinatelecom.cn From: Liu Xinpeng To: wim@linux-watchdog.org, linux@roeck-us.net, groeck7@gmail.com Cc: linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, Liu Xinpeng Subject: [PATCH 3/3] watchdog: wdat_wdg: Add stop watchdog after unregister Date: Sat, 23 Apr 2022 07:05:18 +0800 Message-Id: <1650668718-13626-3-git-send-email-liuxp11@chinatelecom.cn> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1650668718-13626-1-git-send-email-liuxp11@chinatelecom.cn> References: <1650668718-13626-1-git-send-email-liuxp11@chinatelecom.cn> Precedence: bulk List-ID: X-Mailing-List: linux-watchdog@vger.kernel.org Test shows that it still reboot after remove the module. Signed-off-by: Liu Xinpeng --- drivers/watchdog/wdat_wdt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/watchdog/wdat_wdt.c b/drivers/watchdog/wdat_wdt.c index 609922ed4744..502da41ac0b2 100644 --- a/drivers/watchdog/wdat_wdt.c +++ b/drivers/watchdog/wdat_wdt.c @@ -464,6 +464,7 @@ static int wdat_wdt_probe(struct platform_device *pdev) watchdog_set_nowayout(&wdat->wdd, nowayout); watchdog_stop_on_reboot(&wdat->wdd); + watchdog_stop_on_unregister(&wdat->wdd); return devm_watchdog_register_device(dev, &wdat->wdd); }