diff options
author | Cai Huoqing <caihuoqing@baidu.com> | 2021-09-22 20:59:23 +0800 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2021-09-28 18:35:11 +0200 |
commit | 470b52564cceef62e982283cafbada41ff47903b (patch) | |
tree | c0524a24759090032c04a158b02a4b6068b2ec70 /drivers/edac | |
parent | fca6116564181a76c32bf89a0452585f5cb10004 (diff) | |
download | linux-470b52564cceef62e982283cafbada41ff47903b.tar.gz linux-470b52564cceef62e982283cafbada41ff47903b.tar.bz2 linux-470b52564cceef62e982283cafbada41ff47903b.zip |
EDAC/al_mc: Make use of the helper function devm_add_action_or_reset()
The helper function devm_add_action_or_reset() will internally call
devm_add_action(), and if devm_add_action() fails then it will
execute the action mentioned and return the error code. So use
devm_add_action_or_reset() instead of devm_add_action() to simplify the
error handling, reduce the code.
Signed-off-by: Cai Huoqing <caihuoqing@baidu.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Talel Shenhar <talel@amazon.com>
Link: https://lkml.kernel.org/r/20210922125924.321-1-caihuoqing@baidu.com
Diffstat (limited to 'drivers/edac')
-rw-r--r-- | drivers/edac/al_mc_edac.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/edac/al_mc_edac.c b/drivers/edac/al_mc_edac.c index 7d4f396c27b5..178b9e581a72 100644 --- a/drivers/edac/al_mc_edac.c +++ b/drivers/edac/al_mc_edac.c @@ -238,11 +238,9 @@ static int al_mc_edac_probe(struct platform_device *pdev) if (!mci) return -ENOMEM; - ret = devm_add_action(&pdev->dev, devm_al_mc_edac_free, mci); - if (ret) { - edac_mc_free(mci); + ret = devm_add_action_or_reset(&pdev->dev, devm_al_mc_edac_free, mci); + if (ret) return ret; - } platform_set_drvdata(pdev, mci); al_mc = mci->pvt_info; @@ -293,11 +291,9 @@ static int al_mc_edac_probe(struct platform_device *pdev) return ret; } - ret = devm_add_action(&pdev->dev, devm_al_mc_edac_del, &pdev->dev); - if (ret) { - edac_mc_del_mc(&pdev->dev); + ret = devm_add_action_or_reset(&pdev->dev, devm_al_mc_edac_del, &pdev->dev); + if (ret) return ret; - } if (al_mc->irq_ue > 0) { ret = devm_request_irq(&pdev->dev, |