From: Krzysztof Kozlowski Date: Tue, 11 Feb 2014 10:03:30 +0000 (+0100) Subject: mfd: 88pm860x: Fix I2C device resource leak on regmap init fail X-Git-Tag: firefly_0821_release~3679^2~2451 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=fe293a297e92c2979ac678b62aedfd78482e2144;p=firefly-linux-kernel-4.4.55.git mfd: 88pm860x: Fix I2C device resource leak on regmap init fail commit a7ab1c8b261305af583ce26bb4a14f555fdaa73e upstream. During probe the driver allocates dummy I2C device for companion chip and then allocates a regmap for it. If regmap_init_i2c() fails then the I2C driver (allocated with i2c_new_dummy()) is not freed and this resource leaks. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Lee Jones Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/mfd/88pm860x-core.c b/drivers/mfd/88pm860x-core.c index c270d0b268ad..30cf7eef2a8f 100644 --- a/drivers/mfd/88pm860x-core.c +++ b/drivers/mfd/88pm860x-core.c @@ -1190,6 +1190,7 @@ static int pm860x_probe(struct i2c_client *client, ret = PTR_ERR(chip->regmap_companion); dev_err(&chip->companion->dev, "Failed to allocate register map: %d\n", ret); + i2c_unregister_device(chip->companion); return ret; } i2c_set_clientdata(chip->companion, chip);