The helper function devm_add_action_or_reset() will internally
call devm_add_action(), and gif 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>
Link: https://lore.kernel.org/r/20210922130024.745-1-caihuoqing@baidu.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
struct device_node *node = rphy->dev->of_node;
struct clk_init_data init;
const char *clk_name;
- int ret;
+ int ret = 0;
init.flags = 0;
init.name = "clk_usbphy_480m";
if (ret < 0)
goto err_clk_provider;
- ret = devm_add_action(rphy->dev, rockchip_usb2phy_clk480m_unregister,
- rphy);
- if (ret < 0)
- goto err_unreg_action;
-
- return 0;
+ return devm_add_action_or_reset(rphy->dev, rockchip_usb2phy_clk480m_unregister, rphy);
-err_unreg_action:
- of_clk_del_provider(node);
err_clk_provider:
clk_unregister(rphy->clk480m);
err_ret: