backlight: lms283gf05: use devm_ functions
authorJingoo Han <jg1.han@samsung.com>
Tue, 29 May 2012 22:07:23 +0000 (15:07 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 29 May 2012 23:22:30 +0000 (16:22 -0700)
The devm_ functions allocate memory that is released when a driver
detaches.  This patch uses devm_kzalloc of these functions.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Marek Vasut <marek.vasut@gmail.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/video/backlight/lms283gf05.c

index 4161f9e3982a2a544120142f100e45afa34b5d2c..a9f2c36966f1ff60fcf0a8873c1d01f93017c500 100644 (file)
@@ -168,7 +168,8 @@ static int __devinit lms283gf05_probe(struct spi_device *spi)
                        goto err;
        }
 
                        goto err;
        }
 
-       st = kzalloc(sizeof(struct lms283gf05_state), GFP_KERNEL);
+       st = devm_kzalloc(&spi->dev, sizeof(struct lms283gf05_state),
+                               GFP_KERNEL);
        if (st == NULL) {
                dev_err(&spi->dev, "No memory for device state\n");
                ret = -ENOMEM;
        if (st == NULL) {
                dev_err(&spi->dev, "No memory for device state\n");
                ret = -ENOMEM;
@@ -178,7 +179,7 @@ static int __devinit lms283gf05_probe(struct spi_device *spi)
        ld = lcd_device_register("lms283gf05", &spi->dev, st, &lms_ops);
        if (IS_ERR(ld)) {
                ret = PTR_ERR(ld);
        ld = lcd_device_register("lms283gf05", &spi->dev, st, &lms_ops);
        if (IS_ERR(ld)) {
                ret = PTR_ERR(ld);
-               goto err2;
+               goto err;
        }
 
        st->spi = spi;
        }
 
        st->spi = spi;
@@ -193,8 +194,6 @@ static int __devinit lms283gf05_probe(struct spi_device *spi)
 
        return 0;
 
 
        return 0;
 
-err2:
-       kfree(st);
 err:
        if (pdata != NULL)
                gpio_free(pdata->reset_gpio);
 err:
        if (pdata != NULL)
                gpio_free(pdata->reset_gpio);
@@ -212,8 +211,6 @@ static int __devexit lms283gf05_remove(struct spi_device *spi)
        if (pdata != NULL)
                gpio_free(pdata->reset_gpio);
 
        if (pdata != NULL)
                gpio_free(pdata->reset_gpio);
 
-       kfree(st);
-
        return 0;
 }
 
        return 0;
 }