Commit 9dab51da authored by Axel Lin's avatar Axel Lin Committed by Linus Torvalds

drivers/video/backlight/ltv350qv.c: fix a memory leak

Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 10ffa964
...@@ -239,11 +239,15 @@ static int __devinit ltv350qv_probe(struct spi_device *spi) ...@@ -239,11 +239,15 @@ static int __devinit ltv350qv_probe(struct spi_device *spi)
lcd->spi = spi; lcd->spi = spi;
lcd->power = FB_BLANK_POWERDOWN; lcd->power = FB_BLANK_POWERDOWN;
lcd->buffer = kzalloc(8, GFP_KERNEL); lcd->buffer = kzalloc(8, GFP_KERNEL);
if (!lcd->buffer) {
ret = -ENOMEM;
goto out_free_lcd;
}
ld = lcd_device_register("ltv350qv", &spi->dev, lcd, &ltv_ops); ld = lcd_device_register("ltv350qv", &spi->dev, lcd, &ltv_ops);
if (IS_ERR(ld)) { if (IS_ERR(ld)) {
ret = PTR_ERR(ld); ret = PTR_ERR(ld);
goto out_free_lcd; goto out_free_buffer;
} }
lcd->ld = ld; lcd->ld = ld;
...@@ -257,6 +261,8 @@ static int __devinit ltv350qv_probe(struct spi_device *spi) ...@@ -257,6 +261,8 @@ static int __devinit ltv350qv_probe(struct spi_device *spi)
out_unregister: out_unregister:
lcd_device_unregister(ld); lcd_device_unregister(ld);
out_free_buffer:
kfree(lcd->buffer);
out_free_lcd: out_free_lcd:
kfree(lcd); kfree(lcd);
return ret; return ret;
...@@ -268,6 +274,7 @@ static int __devexit ltv350qv_remove(struct spi_device *spi) ...@@ -268,6 +274,7 @@ static int __devexit ltv350qv_remove(struct spi_device *spi)
ltv350qv_power(lcd, FB_BLANK_POWERDOWN); ltv350qv_power(lcd, FB_BLANK_POWERDOWN);
lcd_device_unregister(lcd->ld); lcd_device_unregister(lcd->ld);
kfree(lcd->buffer);
kfree(lcd); kfree(lcd);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment