Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mfd: da903x: Use devm_*() functions

Use devm_*() functions to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>

authored by

Jingoo Han and committed by
Samuel Ortiz
aa4dcf5b 1ba895e0

+6 -13
+6 -13
drivers/mfd/da903x.c
··· 499 499 unsigned int tmp; 500 500 int ret; 501 501 502 - chip = kzalloc(sizeof(struct da903x_chip), GFP_KERNEL); 502 + chip = devm_kzalloc(&client->dev, sizeof(struct da903x_chip), 503 + GFP_KERNEL); 503 504 if (chip == NULL) 504 505 return -ENOMEM; 505 506 ··· 516 515 517 516 ret = chip->ops->init_chip(chip); 518 517 if (ret) 519 - goto out_free_chip; 518 + return ret; 520 519 521 520 /* mask and clear all IRQs */ 522 521 chip->events_mask = 0xffffffff; 523 522 chip->ops->mask_events(chip, chip->events_mask); 524 523 chip->ops->read_events(chip, &tmp); 525 524 526 - ret = request_irq(client->irq, da903x_irq_handler, 525 + ret = devm_request_irq(&client->dev, client->irq, da903x_irq_handler, 527 526 IRQF_TRIGGER_FALLING, 528 527 "da903x", chip); 529 528 if (ret) { 530 529 dev_err(&client->dev, "failed to request irq %d\n", 531 530 client->irq); 532 - goto out_free_chip; 531 + return ret; 533 532 } 534 533 535 534 ret = da903x_add_subdevs(chip, pdata); 536 535 if (ret) 537 - goto out_free_irq; 536 + return ret; 538 537 539 538 return 0; 540 - 541 - out_free_irq: 542 - free_irq(client->irq, chip); 543 - out_free_chip: 544 - kfree(chip); 545 - return ret; 546 539 } 547 540 548 541 static int da903x_remove(struct i2c_client *client) ··· 544 549 struct da903x_chip *chip = i2c_get_clientdata(client); 545 550 546 551 da903x_remove_subdevs(chip); 547 - free_irq(client->irq, chip); 548 - kfree(chip); 549 552 return 0; 550 553 } 551 554