linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] ufs: qcom: Properly clear hba priv on failure
@ 2016-11-20  6:34 Bjorn Andersson
  2016-11-21 18:33 ` Subhash Jadavani
  2016-11-22  3:41 ` Martin K. Petersen
  0 siblings, 2 replies; 3+ messages in thread
From: Bjorn Andersson @ 2016-11-20  6:34 UTC (permalink / raw)
  To: Vinayak Holikatti, James E.J. Bottomley, Martin K. Petersen,
	Subhash Jadavani
  Cc: Yaniv Gardi, Vivek Gautam, linux-scsi, linux-kernel, linux-arm-msm

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: Bjorn Andersson <bjorn.andersson@linaro.org>
---
 drivers/scsi/ufs/ufs-qcom.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
index d345434b084f..4de372d271b0 100644
--- a/drivers/scsi/ufs/ufs-qcom.c
+++ b/drivers/scsi/ufs/ufs-qcom.c
@@ -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;
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] ufs: qcom: Properly clear hba priv on failure
  2016-11-20  6:34 [PATCH v2] ufs: qcom: Properly clear hba priv on failure Bjorn Andersson
@ 2016-11-21 18:33 ` Subhash Jadavani
  2016-11-22  3:41 ` Martin K. Petersen
  1 sibling, 0 replies; 3+ messages in thread
From: Subhash Jadavani @ 2016-11-21 18:33 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Vinayak Holikatti, James E.J. Bottomley, Martin K. Petersen,
	Yaniv Gardi, Vivek Gautam, linux-scsi, linux-kernel,
	linux-arm-msm, linux-scsi-owner

On 2016-11-19 22:34, Bjorn Andersson wrote:
> 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: Bjorn Andersson <bjorn.andersson@linaro.org>
> ---
>  drivers/scsi/ufs/ufs-qcom.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
> index d345434b084f..4de372d271b0 100644
> --- a/drivers/scsi/ufs/ufs-qcom.c
> +++ b/drivers/scsi/ufs/ufs-qcom.c
> @@ -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;

Looks good to me.
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>

-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] ufs: qcom: Properly clear hba priv on failure
  2016-11-20  6:34 [PATCH v2] ufs: qcom: Properly clear hba priv on failure Bjorn Andersson
  2016-11-21 18:33 ` Subhash Jadavani
@ 2016-11-22  3:41 ` Martin K. Petersen
  1 sibling, 0 replies; 3+ messages in thread
From: Martin K. Petersen @ 2016-11-22  3:41 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Vinayak Holikatti, James E.J. Bottomley, Martin K. Petersen,
	Subhash Jadavani, Yaniv Gardi, Vivek Gautam, linux-scsi,
	linux-kernel, linux-arm-msm

>>>>> "Bjorn" == Bjorn Andersson <bjorn.andersson@linaro.org> writes:

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

Applied to 4.10/scsi-queue.

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-11-22  3:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-20  6:34 [PATCH v2] ufs: qcom: Properly clear hba priv on failure Bjorn Andersson
2016-11-21 18:33 ` Subhash Jadavani
2016-11-22  3:41 ` Martin K. Petersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).