Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a6854dff authored by Bjorn Andersson's avatar Bjorn Andersson Committed by Martin K. Petersen
Browse files

scsi: ufs: qcom: Properly clear hba priv on failure



ufs_qcom_init() sets the hba priv data before attempting to acquire the
phy handle, so make sure to clear this in the case of an error. Failing
to do this will make ufs_qcom_setup_clocks() operate on the uninitalized
host object.

Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: default avatarSubhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 22444590
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1197,12 +1197,12 @@ static int ufs_qcom_init(struct ufs_hba *hba)
	if (IS_ERR(host->generic_phy)) {
		err = PTR_ERR(host->generic_phy);
		dev_err(dev, "%s: PHY get failed %d\n", __func__, err);
		goto out;
		goto out_variant_clear;
	}

	err = ufs_qcom_bus_register(host);
	if (err)
		goto out_host_free;
		goto out_variant_clear;

	ufs_qcom_get_controller_revision(hba, &host->hw_ver.major,
		&host->hw_ver.minor, &host->hw_ver.step);
@@ -1267,7 +1267,7 @@ static int ufs_qcom_init(struct ufs_hba *hba)
	phy_power_off(host->generic_phy);
out_unregister_bus:
	phy_exit(host->generic_phy);
out_host_free:
out_variant_clear:
	ufshcd_set_variant(hba, NULL);
out:
	return err;