regulator: twl: Convert to use devm_kmemdup()
authorAxel Lin <axel.lin@ingics.com>
Mon, 16 Jun 2014 01:44:20 +0000 (09:44 +0800)
committerMark Brown <broonie@linaro.org>
Fri, 27 Jun 2014 11:50:35 +0000 (12:50 +0100)
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/regulator/twl-regulator.c

index fed28abef419b81e1988c63eb24eac2fffab2180..0b4f8660fdb4b65c3521e10184109378d98f766d 100644 (file)
@@ -1128,7 +1128,7 @@ static int twlreg_probe(struct platform_device *pdev)
        if (!initdata)
                return -EINVAL;
 
-       info = kmemdup(template, sizeof(*info), GFP_KERNEL);
+       info = devm_kmemdup(&pdev->dev, template, sizeof(*info), GFP_KERNEL);
        if (!info)
                return -ENOMEM;
 
@@ -1192,7 +1192,6 @@ static int twlreg_probe(struct platform_device *pdev)
        if (IS_ERR(rdev)) {
                dev_err(&pdev->dev, "can't register %s, %ld\n",
                                info->desc.name, PTR_ERR(rdev));
-               kfree(info);
                return PTR_ERR(rdev);
        }
        platform_set_drvdata(pdev, rdev);
@@ -1212,20 +1211,10 @@ static int twlreg_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int twlreg_remove(struct platform_device *pdev)
-{
-       struct regulator_dev *rdev = platform_get_drvdata(pdev);
-       struct twlreg_info *info = rdev->reg_data;
-
-       kfree(info);
-       return 0;
-}
-
 MODULE_ALIAS("platform:twl_reg");
 
 static struct platform_driver twlreg_driver = {
        .probe          = twlreg_probe,
-       .remove         = twlreg_remove,
        /* NOTE: short name, to work around driver model truncation of
         * "twl_regulator.12" (and friends) to "twl_regulator.1".
         */