diff --git a/[refs] b/[refs] index ee1be91f8a32..a5317faf8560 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3a2fd4a14112452eb5c1a079ac8b3f4842762afe +refs/heads/master: 920c4f4c3651855f888ec708ecc656ba10dd8f1d diff --git a/trunk/drivers/leds/leds-tca6507.c b/trunk/drivers/leds/leds-tca6507.c index 133f89fb7071..ec06a8101e56 100644 --- a/trunk/drivers/leds/leds-tca6507.c +++ b/trunk/drivers/leds/leds-tca6507.c @@ -687,10 +687,9 @@ static int __devinit tca6507_probe(struct i2c_client *client, NUM_LEDS); return -ENODEV; } - err = -ENOMEM; tca = kzalloc(sizeof(*tca), GFP_KERNEL); if (!tca) - goto exit; + return -ENOMEM; tca->client = client; INIT_WORK(&tca->work, tca6507_work); @@ -724,11 +723,10 @@ static int __devinit tca6507_probe(struct i2c_client *client, return 0; exit: - while (i--) + while (i--) { if (tca->leds[i].led_cdev.name) led_classdev_unregister(&tca->leds[i].led_cdev); - cancel_work_sync(&tca->work); - i2c_set_clientdata(client, NULL); + } kfree(tca); return err; }