Use devm_kstrdup() instead of kstrdup() and check its return value to
avoid memory leak.
Fixes: 49bddc73d15c ("libnvdimm/of_pmem: Provide a unique name for bus provider")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
        if (!priv)
                return -ENOMEM;
 
-       priv->bus_desc.provider_name = kstrdup(pdev->name, GFP_KERNEL);
+       priv->bus_desc.provider_name = devm_kstrdup(&pdev->dev, pdev->name,
+                                                       GFP_KERNEL);
+       if (!priv->bus_desc.provider_name) {
+               kfree(priv);
+               return -ENOMEM;
+       }
+
        priv->bus_desc.module = THIS_MODULE;
        priv->bus_desc.of_node = np;