Messages in this thread Patch in this message | | | Subject | [PATCH] leds: lm3556: Don't call kfree for the memory allocated by devm_kzalloc | From | Axel Lin <> | Date | Sun, 22 Apr 2012 22:57:13 +0800 |
| |
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 <axel.lin@gmail.com> --- drivers/leds/leds-lm3556.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/leds/leds-lm3556.c b/drivers/leds/leds-lm3556.c index cc0abbc..15a5acd 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; } -- 1.7.5.4
| |