hwmon: (ntc_thermistor) Convert to devm_kzalloc
authorGuenter Roeck <guenter.roeck@ericsson.com>
Mon, 23 Apr 2012 17:39:00 +0000 (10:39 -0700)
committerGuenter Roeck <guenter.roeck@ericsson.com>
Mon, 21 May 2012 02:41:49 +0000 (19:41 -0700)
This avoids memory leaks, and makes the code a bit simpler and smaller.

Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Reviewed-by: Robert Coulson <robert.coulson@ericsson.com>
drivers/hwmon/ntc_thermistor.c

index 9b382ec2c3bd4de978d98a6d9f24f797684fe534..4be7faff321b97fd756c0fb3f626b5ec5c92c3ca 100644 (file)
@@ -349,7 +349,7 @@ static int __devinit ntc_thermistor_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       data = kzalloc(sizeof(struct ntc_data), GFP_KERNEL);
+       data = devm_kzalloc(&pdev->dev, sizeof(struct ntc_data), GFP_KERNEL);
        if (!data)
                return -ENOMEM;
 
@@ -370,8 +370,7 @@ static int __devinit ntc_thermistor_probe(struct platform_device *pdev)
                dev_err(&pdev->dev, "Unknown device type: %lu(%s)\n",
                                pdev->id_entry->driver_data,
                                pdev->id_entry->name);
-               ret = -EINVAL;
-               goto err;
+               return -EINVAL;
        }
 
        platform_set_drvdata(pdev, data);
@@ -379,7 +378,7 @@ static int __devinit ntc_thermistor_probe(struct platform_device *pdev)
        ret = sysfs_create_group(&data->dev->kobj, &ntc_attr_group);
        if (ret) {
                dev_err(data->dev, "unable to create sysfs files\n");
-               goto err;
+               return ret;
        }
 
        data->hwmon_dev = hwmon_device_register(data->dev);
@@ -395,8 +394,6 @@ static int __devinit ntc_thermistor_probe(struct platform_device *pdev)
        return 0;
 err_after_sysfs:
        sysfs_remove_group(&data->dev->kobj, &ntc_attr_group);
-err:
-       kfree(data);
        return ret;
 }
 
@@ -408,8 +405,6 @@ static int __devexit ntc_thermistor_remove(struct platform_device *pdev)
        sysfs_remove_group(&data->dev->kobj, &ntc_attr_group);
        platform_set_drvdata(pdev, NULL);
 
-       kfree(data);
-
        return 0;
 }