aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2016-07-03 16:32:22 -0400
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>2016-07-19 11:27:42 -0400
commitd8cac8d93e17d7531d154d94ca9f9e597fe58cad (patch)
treedff9defc1ad47cfac170a7d66a6f7a41a368dee4 /drivers/rtc
parent104b2d8776a42e2b8f9d349adfd71af0794e2a8a (diff)
rtc: abx80x: use devm_add_action_or_reset()
If devm_add_action() fails we are explicitly calling the cleanup to free the resources allocated. Lets use the helper devm_add_action_or_reset() and return directly in case of error, as we know that the cleanup function has been already called by the helper if there was any error. Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/rtc-abx80x.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/rtc/rtc-abx80x.c b/drivers/rtc/rtc-abx80x.c
index ba0d61934d35..fea9a60b06cf 100644
--- a/drivers/rtc/rtc-abx80x.c
+++ b/drivers/rtc/rtc-abx80x.c
@@ -643,17 +643,15 @@ static int abx80x_probe(struct i2c_client *client,
643 return err; 643 return err;
644 } 644 }
645 645
646 err = devm_add_action(&client->dev, rtc_calib_remove_sysfs_group, 646 err = devm_add_action_or_reset(&client->dev,
647 &client->dev); 647 rtc_calib_remove_sysfs_group,
648 if (err) { 648 &client->dev);
649 rtc_calib_remove_sysfs_group(&client->dev); 649 if (err)
650 dev_err(&client->dev, 650 dev_err(&client->dev,
651 "Failed to add sysfs cleanup action: %d\n", 651 "Failed to add sysfs cleanup action: %d\n",
652 err); 652 err);
653 return err;
654 }
655 653
656 return 0; 654 return err;
657} 655}
658 656
659static int abx80x_remove(struct i2c_client *client) 657static int abx80x_remove(struct i2c_client *client)