Message ID | 1392113015-11180-2-git-send-email-k.kozlowski@samsung.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Tue, 11 Feb 2014, Krzysztof Kozlowski wrote: > 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 <k.kozlowski@samsung.com> > Cc: stable@vger.kernel.org > --- > drivers/mfd/88pm860x-core.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/mfd/88pm860x-core.c b/drivers/mfd/88pm860x-core.c > index e456be9a7c67..bcfc9e85b4a0 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); Applied, thanks.
diff --git a/drivers/mfd/88pm860x-core.c b/drivers/mfd/88pm860x-core.c index e456be9a7c67..bcfc9e85b4a0 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);
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 <k.kozlowski@samsung.com> Cc: stable@vger.kernel.org --- drivers/mfd/88pm860x-core.c | 1 + 1 file changed, 1 insertion(+)