Skip to content

Commit

Permalink
mfd: 88pm800: Fix I2C device resource leak if probe fails
Browse files Browse the repository at this point in the history
During probe the driver allocates two dummy I2C devices for subchips in
function pm800_pages_init(). Additionally this function allocates
regmaps for these subchips. If any of these steps fail then these dummy
I2C devices are not freed and resources leak.

On pm800_pages_init() fail the driver must call pm800_pages_exit() to
unregister dummy I2C devices.

Cc: stable@vger.kernel.org
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
  • Loading branch information
Krzysztof Kozlowski authored and Lee Jones committed Mar 19, 2014
1 parent 921a1b0 commit 141050c
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions drivers/mfd/88pm800.c
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,7 @@ static int pm800_probe(struct i2c_client *client,
ret = pm800_pages_init(chip);
if (ret) {
dev_err(&client->dev, "pm800_pages_init failed!\n");
goto err_page_init;
goto err_device_init;
}

ret = device_800_init(chip, pdata);
Expand All @@ -587,7 +587,6 @@ static int pm800_probe(struct i2c_client *client,

err_device_init:
pm800_pages_exit(chip);
err_page_init:
err_subchip_alloc:
pm80x_deinit();
out_init:
Expand Down

0 comments on commit 141050c

Please sign in to comment.