| From 32260d94408c553dca4ce54104edf79941a27536 Mon Sep 17 00:00:00 2001 |
| From: Guenter Roeck <linux@roeck-us.net> |
| Date: Mon, 12 Mar 2012 08:33:10 -0700 |
| Subject: hwmon: (w83627ehf) Fix memory leak in probe function |
| |
| From: Guenter Roeck <linux@roeck-us.net> |
| |
| commit 32260d94408c553dca4ce54104edf79941a27536 upstream. |
| |
| 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> |
| Acked-by: Jean Delvare <khali@linux-fr.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/hwmon/w83627ehf.c | 7 +++---- |
| 1 file changed, 3 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/hwmon/w83627ehf.c |
| +++ b/drivers/hwmon/w83627ehf.c |
| @@ -2004,7 +2004,8 @@ static int __devinit w83627ehf_probe(str |
| 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; |
| @@ -2498,9 +2499,8 @@ static int __devinit w83627ehf_probe(str |
| |
| 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; |
| @@ -2514,7 +2514,6 @@ static int __devexit w83627ehf_remove(st |
| w83627ehf_device_remove_files(&pdev->dev); |
| release_region(data->addr, IOREGION_LENGTH); |
| platform_set_drvdata(pdev, NULL); |
| - kfree(data); |
| |
| return 0; |
| } |