| From 005323921af414111c82292a57061db3027cf1ed Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 25 Jun 2019 18:33:15 -0500 |
| Subject: bus: ti-sysc: Simplify cleanup upon failures in sysc_probe() |
| |
| From: Suman Anna <s-anna@ti.com> |
| |
| [ Upstream commit a304f483b6b00d42bde41c45ca52c670945348e2 ] |
| |
| The clocks are not yet parsed and prepared until after a successful |
| sysc_get_clocks(), so there is no need to unprepare the clocks upon |
| any failure of any of the prior functions in sysc_probe(). The current |
| code path would have been a no-op because of the clock validity checks |
| within sysc_unprepare(), but let's just simplify the cleanup path by |
| returning the error directly. |
| |
| While at this, also fix the cleanup path for a sysc_init_resets() |
| failure which is executed after the clocks are prepared. |
| |
| Signed-off-by: Suman Anna <s-anna@ti.com> |
| Signed-off-by: Tony Lindgren <tony@atomide.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/bus/ti-sysc.c | 14 +++++++------- |
| 1 file changed, 7 insertions(+), 7 deletions(-) |
| |
| diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c |
| index 4ca006e2137f7..e95b26319cd91 100644 |
| --- a/drivers/bus/ti-sysc.c |
| +++ b/drivers/bus/ti-sysc.c |
| @@ -1685,7 +1685,7 @@ static int sysc_probe(struct platform_device *pdev) |
| |
| error = sysc_init_dts_quirks(ddata); |
| if (error) |
| - goto unprepare; |
| + return error; |
| |
| error = sysc_get_clocks(ddata); |
| if (error) |
| @@ -1693,27 +1693,27 @@ static int sysc_probe(struct platform_device *pdev) |
| |
| error = sysc_map_and_check_registers(ddata); |
| if (error) |
| - goto unprepare; |
| + return error; |
| |
| error = sysc_init_sysc_mask(ddata); |
| if (error) |
| - goto unprepare; |
| + return error; |
| |
| error = sysc_init_idlemodes(ddata); |
| if (error) |
| - goto unprepare; |
| + return error; |
| |
| error = sysc_init_syss_mask(ddata); |
| if (error) |
| - goto unprepare; |
| + return error; |
| |
| error = sysc_init_pdata(ddata); |
| if (error) |
| - goto unprepare; |
| + return error; |
| |
| error = sysc_init_resets(ddata); |
| if (error) |
| - return error; |
| + goto unprepare; |
| |
| pm_runtime_enable(ddata->dev); |
| error = sysc_init_module(ddata); |
| -- |
| 2.20.1 |
| |