Re: [PATCH 1/4] phy: qcom-ufs: Don't kfree devres resource

From: Vivek Gautam
Date: Thu Jan 19 2017 - 15:09:38 EST


On Thu, Jan 19, 2017 at 4:17 PM, Bjorn Andersson
<bjorn.andersson@xxxxxxxxxx> wrote:
> Upon failing to acquire regulator supplies the qcom-ufs driver calls
> kfree() on the devm allocated memory used to store the name of the
> regulator, leading to devres corruption.
>
> Rather than switching to using the appropriate free function the patch
> acknowledge the fact that "name" is always a constant string and we
> don't actually need to create a local copy of it, but rather just
> reference the constant string.
>
> Cc: Subhash Jadavani <subhashj@xxxxxxxxxxxxxx>
> Cc: Vivek Gautam <vivek.gautam@xxxxxxxxxxxxxx>
> Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
> ---

This patch fixes:
add78fc05702 phy: qcom-ufs: Use devm sibling of kstrdup for regulator names


Regards
Vivek

> drivers/phy/phy-qcom-ufs.c | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/drivers/phy/phy-qcom-ufs.c b/drivers/phy/phy-qcom-ufs.c
> index c69568b8543d..4d7f3c018223 100644
> --- a/drivers/phy/phy-qcom-ufs.c
> +++ b/drivers/phy/phy-qcom-ufs.c
> @@ -217,12 +217,7 @@ static int __ufs_qcom_phy_init_vreg(struct device *dev,
>
> char prop_name[MAX_PROP_NAME];
>
> - vreg->name = devm_kstrdup(dev, name, GFP_KERNEL);
> - if (!vreg->name) {
> - err = -ENOMEM;
> - goto out;
> - }
> -
> + vreg->name = name;
> vreg->reg = devm_regulator_get(dev, name);
> if (IS_ERR(vreg->reg)) {
> err = PTR_ERR(vreg->reg);
> @@ -265,8 +260,6 @@ static int __ufs_qcom_phy_init_vreg(struct device *dev,
> }
>
> out:
> - if (err)
> - kfree(vreg->name);
> return err;
> }
>
> --
> 2.11.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html



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