[PATCH resent] clk: at91: sama7g5: Add two jump labels in sama7g5_pmc_setup()
From: Markus Elfring <hidden>
Date: 2023-03-25 14:06:29
Also in:
cocci
Subsystem:
common clk framework, the rest · Maintainers:
Michael Turquette, Stephen Boyd, Linus Torvalds
Date: Fri, 17 Mar 2023 20:02:34 +0100
The label “err_free” was used to jump to another pointer check despite of
the detail in the implementation of the function “sama7g5_pmc_setup”
that it was determined already that the corresponding variable contained
a null pointer (because of a failed memory allocation).
* Thus use additional labels.
* Delete an extra pointer check at the end which became unnecessary
with this refactoring.
This issue was detected by using the Coccinelle software.
Fixes: cb783bbbcf54c36256006895c215e86c5e7266d8 ("clk: at91: sama7g5: add clock support for sama7g5")
Signed-off-by: Markus Elfring <redacted>
---
drivers/clk/at91/sama7g5.c | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/drivers/clk/at91/sama7g5.c b/drivers/clk/at91/sama7g5.c
index f135b662f1ff..224b1f2ebef2 100644
--- a/drivers/clk/at91/sama7g5.c
+++ b/drivers/clk/at91/sama7g5.c@@ -927,25 +927,25 @@ static void __init sama7g5_pmc_setup(struct device_node *np) (ARRAY_SIZE(sama7g5_mckx) + ARRAY_SIZE(sama7g5_gck)), GFP_KERNEL); if (!alloc_mem) - goto err_free; + goto free_pmc; hw = at91_clk_register_main_rc_osc(regmap, "main_rc_osc", 12000000, 50000000); if (IS_ERR(hw)) - goto err_free; + goto free_alloc_mem; bypass = of_property_read_bool(np, "atmel,osc-bypass"); hw = at91_clk_register_main_osc(regmap, "main_osc", mainxtal_name, bypass); if (IS_ERR(hw)) - goto err_free; + goto free_alloc_mem; parent_names[0] = "main_rc_osc"; parent_names[1] = "main_osc"; hw = at91_clk_register_sam9x5_main(regmap, "mainck", parent_names, 2); if (IS_ERR(hw)) - goto err_free; + goto free_alloc_mem; sama7g5_pmc->chws[PMC_MAIN] = hw;
@@ -987,7 +987,7 @@ static void __init sama7g5_pmc_setup(struct device_node *np) } if (IS_ERR(hw)) - goto err_free; + goto free_alloc_mem; if (sama7g5_plls[i][j].eid) sama7g5_pmc->chws[sama7g5_plls[i][j].eid] = hw;
@@ -999,7 +999,7 @@ static void __init sama7g5_pmc_setup(struct device_node *np) &mck0_layout, &mck0_characteristics, &pmc_mck0_lock, CLK_GET_RATE_NOCACHE, 5); if (IS_ERR(hw)) - goto err_free; + goto free_alloc_mem; sama7g5_pmc->chws[PMC_MCK] = hw;
@@ -1128,12 +1128,11 @@ static void __init sama7g5_pmc_setup(struct device_node *np) return; err_free: - if (alloc_mem) { - for (i = 0; i < alloc_mem_size; i++) - kfree(alloc_mem[i]); - kfree(alloc_mem); - } - + for (i = 0; i < alloc_mem_size; i++) + kfree(alloc_mem[i]); +free_alloc_mem: + kfree(alloc_mem); +free_pmc: kfree(sama7g5_pmc); } --
2.40.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel