regulator: max8660 - fix a memory leak in max8660_remove()
PATCH 1/1 regulator: max8660 - fix a memory leak in max8660_remove()
In max8660_probe(), we allocate memory for max660. In max8660_remove(), current implementation only free rdev which is a member of struct max8660.
Thus, there is a small memory leak when we unload the module.
This patch fixes the memory leak by passing max660 to i2c clientdata, and properly kfree(max8660) in max8660_remove().
--- drivers/regulator/max8660.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-)
drivers/regulator/max8660.c +5 -5
@@ -450,7 +450,7 @@ static int __devinit max8660_probe(struct i2c_client *client, } } -i2c_set_clientdata (client, rdev); +i2c_set_clientdata (client, max8660);dev_info (&client->dev,"Maxim 8660/8661 regulator driver loaded\n" );return 0 ;
@@ -465,13 +465,13 @@ out: static int __devexit max8660_remove(struct i2c_client *client) { -struct regulator_dev **rdev =i2c_get_clientdata (client); +struct max8660 *max8660 =i2c_get_clientdata (client);int i;for (i =0 ; i <MAX8660_V_END ; i++) -if (rdev[i]) -regulator_unregister (rdev[i]); -kfree (rdev); +if (max8660->rdev[i]) +regulator_unregister (max8660->rdev[i]); +kfree (max8660);return 0 ; }
Signature · 1 line
1.5.4.3
Quoted 1 line · Axel Lin
In
max8660_probe(), we allocate memory for max660.
Typo: max8660
Quoted 6 lines
In
max8660_remove(), current implementation only free rdev which is a member of struct max8660.
Thus, there is a small memory leak when we unload the module.This patch fixes the memory leak by passing max660 to i2c clientdata, and properly kfree(max8660) in
max8660_remove().
These two lines could go away IMHO as they are directly visible from the code. Still, no real need for a resend from my side.
Quoted 2 lines
Signed-off-by Axel Lin <[email protected]>
Thanks for catching that!
Signature · 2 lines
Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ |
Quoted 9 lines · Axel Lin
In
max8660_probe(), we allocate memory for max660. Inmax8660_remove(), current implementation only free rdev which is a member of struct max8660.
Thus, there is a small memory leak when we unload the module.This patch fixes the memory leak by passing max660 to i2c clientdata, and properly kfree(max8660) in
max8660_remove().Signed-off-by Axel Lin <[email protected]>
Liam Girdwood
AppliedQuoted 5 lines · Axel Lin
In
max8660_probe(), we allocate memory for max660. Inmax8660_remove(), current implementation only free rdev which is a member of struct max8660.
Thus, there is a small memory leak when we unload the module.
Quoted 8 lines
This patch fixes the memory leak by passing max660 to i2c clientdata, and properly kfree(max8660) in
max8660_remove().Signed-off-by Axel Lin <[email protected]>--- drivers/regulator/max8660.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-)
Applied.
Thanks
Liam
Signature · 3 lines
Freelance Developer, SlimLogic Ltd ASoC and Voltage Regulator Maintainer. http://www.slimlogic.co.uk