Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp3521840ioo; Mon, 30 May 2022 04:07:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzF7AKsTn0qFIibWO20XlU3ZtsUYC/f2NMeCxQBe2IOHQR/4Y3S+u6Oqtt+L8DtSzzzrnhx X-Received: by 2002:a17:906:180c:b0:6fe:9a3e:3d5b with SMTP id v12-20020a170906180c00b006fe9a3e3d5bmr46778047eje.202.1653908862500; Mon, 30 May 2022 04:07:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653908862; cv=none; d=google.com; s=arc-20160816; b=sOzJPyadskybLwiCTRj8IXdtAncLkayL/zTEolYWtIHZKrnNBEKsS3gVPeYzDUnvpB yG3vAzLsktULcukzwEtcuovJFUwbWU5Bham09WlKHVIowoTMlDAWnjB5SZEm4c+C/PUn cSyOiioIcR3pF7DNcIw1gMPmnivzEIA9iU/U7F+iXGOVuRra4cuJ+cAeZPgCcpoKxsNs bdOi1pm470ChG8B4LgBiD1epz4mddqFI2ckrDe4Q53jC2qkGu0aqL6ZArDRVerin+1lA 96XS2uJPbyAMfwkOk9mcPnvjEV/j+j8ts5QvJhqZKdTq60V0IqooicTTnvqVg5z6vwtu 2jVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=kQsY5dppdnct/ZNtz2heoo4zsfgJCzMJGLniMhE5u8c=; b=lQyqMoWqt69t24HbDQU5vvCaeg3OQ5VdZSYgtnyvFWuCoyfv+vd74T7+bKqWVKgh7H ZHrfqJ2UDk4/wOy+P581lPJx+CC9wJYQ65xJhvZV3rHX7SA2tgdh4MuLnIkMJz8hXJZM oMKd38Gx83Zm53z4+wW00MAJfillSKrGSUBkIp8yCUHRJJErZ71J0Dce6dsOR1oT2M5t ulrXrgKexDnA4cniHicmFUziTlqNxzgyu7Hv34R7+w+xxmkuqXsyjnS9ILvxMHSp3Nap sVXFyPcD/GREQA7YU2i0PWiIVTuBRrMVq+r4kGKprogeHnZJC6XBn7CmuYqALpzXtAEd +54g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcdkim header.b=pJfKj9ms; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g19-20020a056402321300b00427c9085991si11104255eda.282.2022.05.30.04.07.15; Mon, 30 May 2022 04:07:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcdkim header.b=pJfKj9ms; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231500AbiE3GXi (ORCPT + 99 others); Mon, 30 May 2022 02:23:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58592 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231684AbiE3GX0 (ORCPT ); Mon, 30 May 2022 02:23:26 -0400 Received: from alexa-out-sd-01.qualcomm.com (alexa-out-sd-01.qualcomm.com [199.106.114.38]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D4557B7C8; Sun, 29 May 2022 23:23:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1653891803; x=1685427803; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=kQsY5dppdnct/ZNtz2heoo4zsfgJCzMJGLniMhE5u8c=; b=pJfKj9ms2EMEvLepLh0TJEvd+PGxgJ/He2h8PLr0JS4HN8pLSK6gqt4K /tHrmyFfMr7daVkHBIWLgF6mydUXijRkbGSN/WhPR61bUkRkOxQKTBPHo epQsHy/RUrjD5/HojdTqIAEdLZDQVHCuaqYyd1aRwk8sU5mhHgrTBXTzi k=; Received: from unknown (HELO ironmsg05-sd.qualcomm.com) ([10.53.140.145]) by alexa-out-sd-01.qualcomm.com with ESMTP; 29 May 2022 23:23:23 -0700 X-QCInternal: smtphost Received: from nasanex01c.na.qualcomm.com ([10.47.97.222]) by ironmsg05-sd.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 May 2022 23:23:23 -0700 Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nasanex01c.na.qualcomm.com (10.47.97.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Sun, 29 May 2022 23:23:23 -0700 Received: from blr-ubuntu-87.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Sun, 29 May 2022 23:23:19 -0700 From: Sibi Sankar To: CC: , , , , , , , Siddharth Gupta , Sibi Sankar Subject: [V2 5/6] remoteproc: q6v5: Set q6 state to offline on receiving wdog irq Date: Mon, 30 May 2022 11:52:50 +0530 Message-ID: <1653891771-17103-6-git-send-email-quic_sibis@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1653891771-17103-1-git-send-email-quic_sibis@quicinc.com> References: <1653891771-17103-1-git-send-email-quic_sibis@quicinc.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Siddharth Gupta Due to firmware bugs on the Q6 the hardware watchdog irq can be triggered multiple times. As the remoteproc framework schedules work items for the recovery process, if the other threads do not get a chance to run before recovery is completed the proceeding threads will see the state of the remoteproc as running and kill the remoteproc while it is running. This can result in various SMMU and NOC errors. This change sets the state of the remoteproc to offline whenever a watchdog irq is received. Signed-off-by: Siddharth Gupta Signed-off-by: Sibi Sankar --- drivers/remoteproc/qcom_q6v5.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/remoteproc/qcom_q6v5.c b/drivers/remoteproc/qcom_q6v5.c index 5280ec9b5449..497acfb33f8f 100644 --- a/drivers/remoteproc/qcom_q6v5.c +++ b/drivers/remoteproc/qcom_q6v5.c @@ -112,6 +112,7 @@ static irqreturn_t q6v5_wdog_interrupt(int irq, void *data) else dev_err(q6v5->dev, "watchdog without message\n"); + q6v5->running = false; rproc_report_crash(q6v5->rproc, RPROC_WATCHDOG); return IRQ_HANDLED; @@ -123,6 +124,9 @@ static irqreturn_t q6v5_fatal_interrupt(int irq, void *data) size_t len; char *msg; + if (!q6v5->running) + return IRQ_HANDLED; + msg = qcom_smem_get(QCOM_SMEM_HOST_ANY, q6v5->crash_reason, &len); if (!IS_ERR(msg) && len > 0 && msg[0]) dev_err(q6v5->dev, "fatal error received: %s\n", msg); -- 2.7.4