diff --git a/drivers/leds/leds-tca6507.c b/drivers/leds/leds-tca6507.c index f74a45a49f47..dabcf7ae8d0f 100644 --- a/drivers/leds/leds-tca6507.c +++ b/drivers/leds/leds-tca6507.c @@ -687,7 +687,7 @@ static int __devinit tca6507_probe(struct i2c_client *client, NUM_LEDS); return -ENODEV; } - tca = kzalloc(sizeof(*tca), GFP_KERNEL); + tca = devm_kzalloc(&client->dev, sizeof(*tca), GFP_KERNEL); if (!tca) return -ENOMEM; @@ -727,7 +727,6 @@ exit: if (tca->leds[i].led_cdev.name) led_classdev_unregister(&tca->leds[i].led_cdev); } - kfree(tca); return err; } @@ -743,7 +742,6 @@ static int __devexit tca6507_remove(struct i2c_client *client) } tca6507_remove_gpio(tca); cancel_work_sync(&tca->work); - kfree(tca); return 0; }