]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mfd: max77686: Fix regmap resource leak on driver remove
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>
Fri, 20 Dec 2013 09:35:07 +0000 (10:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Feb 2014 19:34:02 +0000 (11:34 -0800)
commit 74142ffc0b52cfe6f9d2f6f34a5f3eedbfe3ce51 upstream.

The regmap used by max77686 MFD driver was not freed with regmap_exit()
on driver exit. This lead to leak of resources.

Replace regmap_init_i2c() call in driver probe with initialization of
managed register map so the regmap will be properly freed by the device
management code.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mfd/max77686.c

index 34520cbe8afbd6e9f0daca77f4bbde41b93697a6..12b3ae3aa7c5656aebc034b62f500a3b9f4527f7 100644 (file)
@@ -104,7 +104,7 @@ static int max77686_i2c_probe(struct i2c_client *i2c,
        max77686->irq_gpio = pdata->irq_gpio;
        max77686->irq = i2c->irq;
 
-       max77686->regmap = regmap_init_i2c(i2c, &max77686_regmap_config);
+       max77686->regmap = devm_regmap_init_i2c(i2c, &max77686_regmap_config);
        if (IS_ERR(max77686->regmap)) {
                ret = PTR_ERR(max77686->regmap);
                dev_err(max77686->dev, "Failed to allocate register map: %d\n",