diff options
author | Sudip Mukherjee <sudipm.mukherjee@gmail.com> | 2016-07-03 22:01:06 +0100 |
---|---|---|
committer | Kishon Vijay Abraham I <kishon@ti.com> | 2016-07-04 18:07:39 +0530 |
commit | d33fb008e4dd807e451cdbcf90712a3d44bc011f (patch) | |
tree | 871bf43d3ce5540b3cb0329843b7103efd4c7618 /drivers/phy | |
parent | 91d96f06a760f5f36586e972281e239bb9508596 (diff) | |
download | lwn-d33fb008e4dd807e451cdbcf90712a3d44bc011f.tar.gz lwn-d33fb008e4dd807e451cdbcf90712a3d44bc011f.zip |
phy: rockhip-usb: 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>
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Diffstat (limited to 'drivers/phy')
-rw-r--r-- | drivers/phy/phy-rockchip-usb.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/phy/phy-rockchip-usb.c b/drivers/phy/phy-rockchip-usb.c index e66b5bf3605f..2a7381f4fe4c 100644 --- a/drivers/phy/phy-rockchip-usb.c +++ b/drivers/phy/phy-rockchip-usb.c @@ -236,9 +236,10 @@ static int rockchip_usb_phy_init(struct rockchip_usb_phy_base *base, goto err_clk_prov; } - err = devm_add_action(base->dev, rockchip_usb_phy_action, rk_phy); + err = devm_add_action_or_reset(base->dev, rockchip_usb_phy_action, + rk_phy); if (err) - goto err_devm_action; + return err; rk_phy->phy = devm_phy_create(base->dev, child, &ops); if (IS_ERR(rk_phy->phy)) { @@ -256,9 +257,6 @@ static int rockchip_usb_phy_init(struct rockchip_usb_phy_base *base, else return rockchip_usb_phy_power(rk_phy, 1); -err_devm_action: - if (!rk_phy->uart_enabled) - of_clk_del_provider(child); err_clk_prov: if (!rk_phy->uart_enabled) clk_unregister(rk_phy->clk480m); |