From 712353603eb0f2b1ebe0ff3f6a7f193a8d596a38 Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Thu, 3 May 2012 15:44:24 +1000 Subject: [PATCH] leds: lm3556: don't call kfree for the memory allocated by devm_kzalloc The devm_* functions eliminate the need for manual resource releasing and simplify error handling. Resources allocated by devm_* are freed automatically on driver detach. Thus adding kfree calls here will introduce double free bug. Signed-off-by: Axel Lin Cc: Geon Si Jeong Signed-off-by: Andrew Morton --- drivers/leds/leds-lm3556.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/leds/leds-lm3556.c b/drivers/leds/leds-lm3556.c index cc0abbcfee1b..15a5acdb77ef 100644 --- a/drivers/leds/leds-lm3556.c +++ b/drivers/leds/leds-lm3556.c @@ -360,9 +360,8 @@ static int lm3556_probe(struct i2c_client *client, return -ENODATA; } - chip = - devm_kzalloc(&client->dev, sizeof(struct lm3556_chip_data), - GFP_KERNEL); + chip = devm_kzalloc(&client->dev, sizeof(struct lm3556_chip_data), + GFP_KERNEL); if (!chip) return -ENOMEM; @@ -416,7 +415,6 @@ err_create_torch_file: err_create_flash_file: err_chip_init: i2c_set_clientdata(client, NULL); - kfree(chip); return err; } @@ -430,7 +428,6 @@ static int lm3556_remove(struct i2c_client *client) led_classdev_unregister(&chip->cdev_flash); lm3556_write_reg(client, REG_ENABLE, 0); - kfree(chip); return 0; } -- 2.39.5