Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp1714813rwb; Sat, 19 Nov 2022 02:03:31 -0800 (PST) X-Google-Smtp-Source: AA0mqf5vsC94y72IajXGTr8T9K6/6akLRksrDt5j0ealVP/SMwV1P3CdJJnE3ut/on/ZKqcyUeo4 X-Received: by 2002:a17:902:e40a:b0:17a:a81:2a52 with SMTP id m10-20020a170902e40a00b0017a0a812a52mr3210136ple.159.1668852211194; Sat, 19 Nov 2022 02:03:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668852211; cv=none; d=google.com; s=arc-20160816; b=yqLToitxWLYnwzJU8LQNNqVbS6Bw81nzg/CONbuovVm+cStQHMJa3mVLboFeV2Mspc 1uFGJZAQ1jeGXBcZjNolKTD4F/XP7CTfimzba2XWM7GnAdaBaKxNNKoj1X+jMgNy2ZSa 4YGUlsvDTVUVju+2ds885f91dZ55x40kSXCwWokBkXFBsupfiAcybSerqScWk9XRsYt7 GvpjW5XMweH1+E0/FUp8NFYV6FWyVfk26UaipJs2Mw9DcRjts4dpLYt0bdBP8DCrmtMT 0XG3OhSDgKLhfiBKVmuC5LcIzmRDCLoeZSBvD/pk9h8TbFACdNp39/tRfHPIwQc50oMF 4jlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=lHQipsyHSMcpQupWUj9xoLyih8QH5SPQkQ2rCEMp04w=; b=gIa3V6fyOsZ3YaAJ1i8OoLZZBDKYNfnEus00Ao/emTpTISPQr9i7D0ctpj8d/NTNMF 9nENR34m8saX6tKnWKDE915+RjZ6ICL11tqKl3ueewL/rwQH7P+AJR+IRIZGOhWGsmng Y8MogYrbm3IxQcbSA9pNuo5IqvnfAC7l05lqMBKxaaX+ATs+NAgZjuj2cqISpH464Q4A PByhD25/QNYRm2w1og8IDe80O8TsLAHHPeAk8GPEXjPV15rOaebi2sN8+xrSvQw8VRma nHN3BSC3wTJgeYB9Y/07gf6WdtI0VEKhwr99EEgOhg2iq67qL25qfOlJd/yW/IZXz8AI aeXg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j6-20020a170902da8600b00187242da09asi6750509plx.265.2022.11.19.02.03.07; Sat, 19 Nov 2022 02:03:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-crypto-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; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231548AbiKSJtp (ORCPT + 99 others); Sat, 19 Nov 2022 04:49:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33566 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230244AbiKSJto (ORCPT ); Sat, 19 Nov 2022 04:49:44 -0500 Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 452B375D8E; Sat, 19 Nov 2022 01:49:43 -0800 (PST) Received: from dggemv703-chm.china.huawei.com (unknown [172.30.72.53]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4NDph54zZVzFqQC; Sat, 19 Nov 2022 17:46:29 +0800 (CST) Received: from kwepemm600009.china.huawei.com (7.193.23.164) by dggemv703-chm.china.huawei.com (10.3.19.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sat, 19 Nov 2022 17:49:41 +0800 Received: from localhost.localdomain (10.69.192.56) by kwepemm600009.china.huawei.com (7.193.23.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sat, 19 Nov 2022 17:49:40 +0800 From: Weili Qian To: CC: , , , Subject: [PATCH] crypto: hisilicon/qm - add device status check when start fails Date: Sat, 19 Nov 2022 17:50:03 +0800 Message-ID: <20221119095003.10802-1-qianweili@huawei.com> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.69.192.56] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To kwepemm600009.china.huawei.com (7.193.23.164) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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-crypto@vger.kernel.org In function 'hisi_qm_resume', if the device fails to be started, directly returning error code will cause the device to be unavailable. However, the failure may be caused by device error, which will be reported to the driver, and driver can reset and restart device. Therefore, check device status instead of returning error code directly. Returns 0 if device error has occurred, otherwise returns error code. Signed-off-by: Weili Qian --- drivers/crypto/hisilicon/qm.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c index 9072bee7336f..007ac7a69ce7 100644 --- a/drivers/crypto/hisilicon/qm.c +++ b/drivers/crypto/hisilicon/qm.c @@ -5468,8 +5468,14 @@ int hisi_qm_resume(struct device *dev) } ret = hisi_qm_start(qm); - if (ret) - pci_err(pdev, "failed to start qm(%d)\n", ret); + if (ret) { + if (qm_check_dev_error(qm)) { + pci_info(pdev, "failed to start qm due to device error, device will be reset!\n"); + return 0; + } + + pci_err(pdev, "failed to start qm(%d)!\n", ret); + } return ret; } -- 2.33.0