From patchwork Tue Apr 6 11:48:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Garry X-Patchwork-Id: 415892 Delivered-To: patch@linaro.org Received: by 2002:a02:8562:0:0:0:0:0 with SMTP id g89csp4490518jai; Tue, 6 Apr 2021 04:52:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx2d+CElb5r7y/yp1iJNAzLODNcaMXzwkSePEbFvVLYWbNpFxxFlHvC69TcOILyeE9ARe9B X-Received: by 2002:a17:907:2062:: with SMTP id qp2mr33471657ejb.397.1617709972035; Tue, 06 Apr 2021 04:52:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617709972; cv=none; d=google.com; s=arc-20160816; b=bsQzzMLYeY0LTWuvmh1OgIIfILpuy3IxXkshNz/9jj+imdIC298uuRygJgz09aKYxj 4aJMoyKycvoJC6yL1a2RrkhaR89xRafWgEeJZCioJMuHdM1OgiVMIuQZ8ldMZsMtarHm dG6cAB9OYMV53o0+VUTbMwrREMzog8gwqgk+J9IX2/QDn+2V53IvZ645zQaAokg+JhLu vC/yhVyCMCxPR550xTXtsB33aqPcFEb1QkkWifdxOzUf/EORdAceN7kyN8CrUSfuGjTV Rp65gnyR5yDXr9csGQn0i3MPkmAol+mtrTbSFdMVWx0tjX2Qa7wNDAvh2BBh558YfUCj dAVg== 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; bh=Ec0c3KoNmfoe8nAXGCdNMjbvQ4QP+laIdqa6hMuFBnU=; b=uO/LffZVPIKck2dtP/s3tV723l7ZMMHv1pdQJwGJ16zy8cWhMkTCJQU71mKHX3Jg1c ZiVfI/zV3a7SkRagCjyJTfCdLXbeKuy/mTxtIfY+B5Zym0QGUyhPGSH0pu1kZQ3GHZED riZDuZCuG1Ey3aIkr6n4k3LNw5pdoZuuX4ztgyzjpntEyNFH7yYur11h5Hqss4rL9Rt6 YSRakvtTX4EKkntwkOWc8U6HRcpgkR6ICPiNOERsrDjU9+KU2vqPS6KWTyhp4Z1/AOkf hdgtsUE3j1WopMmdmkaXjjIcWcQgbO7lvEMPkTWlPDoiJxYSY2lHSBpE40DLK8sWy1cV Z+vQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-scsi-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-scsi-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y8si17443705edw.487.2021.04.06.04.52.51 for ; Tue, 06 Apr 2021 04:52:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-scsi-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-scsi-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-scsi-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343538AbhDFLw6 (ORCPT ); Tue, 6 Apr 2021 07:52:58 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:16362 "EHLO szxga07-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243272AbhDFLw5 (ORCPT ); Tue, 6 Apr 2021 07:52:57 -0400 Received: from DGGEMS407-HUB.china.huawei.com (unknown [172.30.72.59]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4FF5SY3Qpzz93l6; Tue, 6 Apr 2021 19:50:37 +0800 (CST) Received: from localhost.localdomain (10.69.192.58) by DGGEMS407-HUB.china.huawei.com (10.3.19.207) with Microsoft SMTP Server id 14.3.498.0; Tue, 6 Apr 2021 19:52:37 +0800 From: John Garry To: , CC: , , , Xiang Chen , John Garry Subject: [PATCH 3/6] scsi: hisi_sas: Call sas_unregister_ha() to roll back if .hw_init() fails Date: Tue, 6 Apr 2021 19:48:28 +0800 Message-ID: <1617709711-195853-4-git-send-email-john.garry@huawei.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1617709711-195853-1-git-send-email-john.garry@huawei.com> References: <1617709711-195853-1-git-send-email-john.garry@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.58] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org From: Xiang Chen Function sas_unregister_ha() needs to be called to roll back if hisi_hba->hw->hw_init() fails in function hisi_sas_probe() or hisi_sas_v3_probe(), so make that change. Signed-off-by: Xiang Chen Signed-off-by: John Garry --- drivers/scsi/hisi_sas/hisi_sas_main.c | 4 +++- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) -- 2.26.2 diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c index a979edfd9a78..971c45a1401c 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_main.c +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c @@ -2689,12 +2689,14 @@ int hisi_sas_probe(struct platform_device *pdev, rc = hisi_hba->hw->hw_init(hisi_hba); if (rc) - goto err_out_register_ha; + goto err_out_hw_init; scsi_scan_host(shost); return 0; +err_out_hw_init: + sas_unregister_ha(sha); err_out_register_ha: scsi_remove_host(shost); err_out_ha: diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c index 51187dd53c86..d7f8ba0c1680 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c +++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c @@ -4761,7 +4761,7 @@ hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id) rc = hisi_sas_v3_init(hisi_hba); if (rc) - goto err_out_register_ha; + goto err_out_hw_init; scsi_scan_host(shost); @@ -4778,6 +4778,8 @@ hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id) return 0; +err_out_hw_init: + sas_unregister_ha(sha); err_out_register_ha: scsi_remove_host(shost); err_out_free_irq_vectors: