forked from luck/tmp_suning_uos_patched
mfd: pcf50633: Fix some memory leaks in the error handling path of 'pcf50633_probe()'
If a 'platform_device_alloc()' call fails, we still need to release the resources that have already been allocated before returning. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
59f4d741b1
commit
52a3a374af
|
@ -242,8 +242,10 @@ static int pcf50633_probe(struct i2c_client *client,
|
|||
|
||||
for (i = 0; i < PCF50633_NUM_REGULATORS; i++) {
|
||||
pdev = platform_device_alloc("pcf50633-regulator", i);
|
||||
if (!pdev)
|
||||
return -ENOMEM;
|
||||
if (!pdev) {
|
||||
ret = -ENOMEM;
|
||||
goto err2;
|
||||
}
|
||||
|
||||
pdev->dev.parent = pcf->dev;
|
||||
ret = platform_device_add_data(pdev, &pdata->reg_init_data[i],
|
||||
|
@ -269,6 +271,7 @@ static int pcf50633_probe(struct i2c_client *client,
|
|||
|
||||
err:
|
||||
platform_device_put(pdev);
|
||||
err2:
|
||||
for (j = 0; j < i; j++)
|
||||
platform_device_put(pcf->regulator_pdev[j]);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user