forked from Minki/linux
x86/hwmon: don't leak device attribute file from pkgtemp_probe() and pkgtemp_remove()
While apparently inherited from coretemp source, this particular error handling cleanup and exit path wasn't copied properly (or perhaps got discarded intermediately and not re-added properly later). Signed-off-by: Jan Beulich <jbeulich@novell.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com> (added device file removal in pkgtemp_remove)
This commit is contained in:
parent
d9bca43582
commit
d172132f35
@ -224,7 +224,7 @@ static int __devinit pkgtemp_probe(struct platform_device *pdev)
|
||||
|
||||
err = sysfs_create_group(&pdev->dev.kobj, &pkgtemp_group);
|
||||
if (err)
|
||||
goto exit_free;
|
||||
goto exit_dev;
|
||||
|
||||
data->hwmon_dev = hwmon_device_register(&pdev->dev);
|
||||
if (IS_ERR(data->hwmon_dev)) {
|
||||
@ -238,6 +238,8 @@ static int __devinit pkgtemp_probe(struct platform_device *pdev)
|
||||
|
||||
exit_class:
|
||||
sysfs_remove_group(&pdev->dev.kobj, &pkgtemp_group);
|
||||
exit_dev:
|
||||
device_remove_file(&pdev->dev, &sensor_dev_attr_temp1_max.dev_attr);
|
||||
exit_free:
|
||||
kfree(data);
|
||||
exit:
|
||||
@ -250,6 +252,7 @@ static int __devexit pkgtemp_remove(struct platform_device *pdev)
|
||||
|
||||
hwmon_device_unregister(data->hwmon_dev);
|
||||
sysfs_remove_group(&pdev->dev.kobj, &pkgtemp_group);
|
||||
device_remove_file(&pdev->dev, &sensor_dev_attr_temp1_max.dev_attr);
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
kfree(data);
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user