diff options
author | Sudip Mukherjee <sudipm.mukherjee@gmail.com> | 2016-07-03 16:32:22 -0400 |
---|---|---|
committer | Alexandre Belloni <alexandre.belloni@free-electrons.com> | 2016-07-19 11:27:42 -0400 |
commit | d8cac8d93e17d7531d154d94ca9f9e597fe58cad (patch) | |
tree | dff9defc1ad47cfac170a7d66a6f7a41a368dee4 /drivers/rtc | |
parent | 104b2d8776a42e2b8f9d349adfd71af0794e2a8a (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.c | 12 |
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 | ||
659 | static int abx80x_remove(struct i2c_client *client) | 657 | static int abx80x_remove(struct i2c_client *client) |