Skip to content

Commit

Permalink
hwmon: (w83627ehf) Fix memory leak in probe function
Browse files Browse the repository at this point in the history
The driver probe function leaked memory if creating the cpu0_vid attribute file
failed. Fix by converting the driver to use devm_kzalloc.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Cc: stable@vger.kernel.org # 2.6.32+
Acked-by: Jean Delvare <khali@linux-fr.org>
  • Loading branch information
groeck authored and Guenter Roeck committed Mar 12, 2012
1 parent 33fa9b6 commit 32260d9
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions drivers/hwmon/w83627ehf.c
Expand Up @@ -2004,7 +2004,8 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
goto exit;
}

data = kzalloc(sizeof(struct w83627ehf_data), GFP_KERNEL);
data = devm_kzalloc(&pdev->dev, sizeof(struct w83627ehf_data),
GFP_KERNEL);
if (!data) {
err = -ENOMEM;
goto exit_release;
Expand Down Expand Up @@ -2493,9 +2494,8 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)

exit_remove:
w83627ehf_device_remove_files(dev);
kfree(data);
platform_set_drvdata(pdev, NULL);
exit_release:
platform_set_drvdata(pdev, NULL);
release_region(res->start, IOREGION_LENGTH);
exit:
return err;
Expand All @@ -2509,7 +2509,6 @@ static int __devexit w83627ehf_remove(struct platform_device *pdev)
w83627ehf_device_remove_files(&pdev->dev);
release_region(data->addr, IOREGION_LENGTH);
platform_set_drvdata(pdev, NULL);
kfree(data);

return 0;
}
Expand Down

0 comments on commit 32260d9

Please sign in to comment.