diff --git a/drivers/phy/phy-qcom-ufs.c b/drivers/phy/phy-qcom-ufs.c
index 455064cd270d06e4897a27b52313688095639003..5dc24d8554a89bea8769fe8743a25e1ae0ed2102 100644
--- a/drivers/phy/phy-qcom-ufs.c
+++ b/drivers/phy/phy-qcom-ufs.c
@@ -251,7 +251,7 @@ static int __ufs_qcom_phy_init_vreg(struct phy *phy,
 
 	char prop_name[MAX_PROP_NAME];
 
-	vreg->name = kstrdup(name, GFP_KERNEL);
+	vreg->name = devm_kstrdup(dev, name, GFP_KERNEL);
 	if (!vreg->name) {
 		err = -ENOMEM;
 		goto out;
@@ -637,9 +637,6 @@ int ufs_qcom_phy_remove(struct phy *generic_phy,
 {
 	phy_power_off(generic_phy);
 
-	kfree(ufs_qcom_phy->vdda_pll.name);
-	kfree(ufs_qcom_phy->vdda_phy.name);
-
 	return 0;
 }
 EXPORT_SYMBOL_GPL(ufs_qcom_phy_remove);