gpio: 74x164: Use devm_kzalloc
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Wed, 5 Sep 2012 08:40:51 +0000 (10:40 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 7 Sep 2012 21:01:43 +0000 (23:01 +0200)
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Florian Fainelli <florian@openwrt.org>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-74x164.c

index 2975036..604b998 100644 (file)
@@ -90,7 +90,7 @@ static int __devinit gen_74x164_probe(struct spi_device *spi)
        if (ret < 0)
                return ret;
 
-       chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+       chip = devm_kzalloc(&spi->dev, sizeof(*chip), GFP_KERNEL);
        if (!chip)
                return -ENOMEM;
 
@@ -125,7 +125,6 @@ static int __devinit gen_74x164_probe(struct spi_device *spi)
 exit_destroy:
        dev_set_drvdata(&spi->dev, NULL);
        mutex_destroy(&chip->lock);
-       kfree(chip);
        return ret;
 }
 
@@ -141,10 +140,9 @@ static int __devexit gen_74x164_remove(struct spi_device *spi)
        dev_set_drvdata(&spi->dev, NULL);
 
        ret = gpiochip_remove(&chip->gpio_chip);
-       if (!ret) {
+       if (!ret)
                mutex_destroy(&chip->lock);
-               kfree(chip);
-       } else
+       else
                dev_err(&spi->dev, "Failed to remove the GPIO controller: %d\n",
                                ret);