Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp2051498ybf; Mon, 2 Mar 2020 00:47:48 -0800 (PST) X-Google-Smtp-Source: ADFU+vt16KUPhZrvr79J1wXCD6fzfehsnlcSuiLR5NyM9e8rznsNR9j27zh0jsAHWaWxXf2l4vXr X-Received: by 2002:a05:6830:1e46:: with SMTP id e6mr1656943otj.257.1583138867720; Mon, 02 Mar 2020 00:47:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583138867; cv=none; d=google.com; s=arc-20160816; b=ncDOjjDYqY4wG0g/7yvTQ10FdXGf66WiJ3LH6qC4lTOJkb/h3F9FbhaWyUdqVOTWQo NEZJ0z2QncI78SV1s1U92xRkMBAwTHl5Y7agLzkCiS5llMxPE6l8rycok40b11IgemGl TD8JsRz/AT9xryIoW2CTrnksQcy1zKkMjRfSb3YMDi/9SKDwbT/dO5NEdrCWK+z5Eexq 0orXj6S2j056ICuMth1K66wiytjUqL7pXXH3PTSjlBkAwTB+k4v/zbl7bNdbxCMLLPj0 rabX3oTT3MZK3V8NOwaln4Kbz8SPCJqDwntDu9BoObiExzZA58pCn+De25ZYKO8cKJ70 +CPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=riXk6rOdpByCVE8SkFvdwBLmnKF0C21rxAJZaeZjF2M=; b=nLn6tIoAnnEPa0KgaOopwt0pLiRSg1Gq7uaCLaBzTKW/+o3tTpDaTV6o4xEjrVqCoM wYCVA0Zp+TYDuODmJcABBeb8PXkveLJiuTPXlc9vPBTCfHVS3KKV5f4OpeODo9Ob8Hxm /yPAdbhbeyPyW8BnJHNiEcxbqv4h4BPjsgdMat50JbUc8nPgGDT0foTvpBfSheaIOM2b rhktEm71sRaSYGwhMI6JspVFJt79TZ+m9oPu4Lv3FvM0dVyI2a0kbp618I5rvGP6rrzp FRt3+Lr7rIVOnKKR+hZkv91JNZLXCtMIPcAIdVZ3rmYqXY39dvZ/gzRlcUyqHKjXhzQE WRyA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o206si6355608oih.143.2020.03.02.00.47.35; Mon, 02 Mar 2020 00:47:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727386AbgCBIqm (ORCPT + 99 others); Mon, 2 Mar 2020 03:46:42 -0500 Received: from out30-57.freemail.mail.aliyun.com ([115.124.30.57]:47841 "EHLO out30-57.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726887AbgCBIql (ORCPT ); Mon, 2 Mar 2020 03:46:41 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R441e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04420;MF=zhangliguang@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0TrOpVf5_1583138783; Received: from localhost(mailfrom:zhangliguang@linux.alibaba.com fp:SMTPD_---0TrOpVf5_1583138783) by smtp.aliyun-inc.com(127.0.0.1); Mon, 02 Mar 2020 16:46:30 +0800 From: luanshi To: Wim Van Sebroeck , Guenter Roeck Cc: linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org, luanshi Subject: [PATCH] watchdog: sbsa_gwdt: disable watchdog when system panic was trigged by signal WS0 Date: Mon, 2 Mar 2020 16:46:21 +0800 Message-Id: <1583138781-40936-1-git-send-email-zhangliguang@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When ARM SBSA Generic Watchdog worked in the two stages mode by setting module parameter action to 1, when the timeout is reached, the first signal (WS0) will trigger panic. Before panic, the value of register SBSA_GWDT_WCS was 0x0, after panic and system startup, the value of register SBSA_GWDT_WCS was 0x7, status bits SBSA_GWDT_WCS_EN SBSA_GWDT_WCS_WS0 and SBSA_GWDT_WCS_WS1 were set, this will increase the refcnt of module sbsa_gwdt by function watchdog_cdev_register because flag WDOG_HW_RUNNING was set, so we cannot unload the module again. To be consistent with reboot, watchdog should be disabled when system panic was trigged by signal(WS0). Signed-off-by: Liguang Zhang --- drivers/watchdog/sbsa_gwdt.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/watchdog/sbsa_gwdt.c b/drivers/watchdog/sbsa_gwdt.c index f0f1e3b..6bee5bb 100644 --- a/drivers/watchdog/sbsa_gwdt.c +++ b/drivers/watchdog/sbsa_gwdt.c @@ -194,6 +194,12 @@ static int sbsa_gwdt_stop(struct watchdog_device *wdd) static irqreturn_t sbsa_gwdt_interrupt(int irq, void *dev_id) { + struct sbsa_gwdt *gwdt = (struct sbsa_gwdt *)dev_id; + struct watchdog_device *wdd = &gwdt->wdd; + + if (wdd->ops->stop) + wdd->ops->stop(wdd); + panic(WATCHDOG_NAME " timeout"); return IRQ_HANDLED; -- 1.8.3.1