Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6f620a4 authored by Cong Ding's avatar Cong Ding Committed by Jason Cooper
Browse files

clk: mvebu/clk-cpu.c: fix memory leakage



the variable cpuclk and clk_name should be properly freed when error happens.

Signed-off-by: default avatarCong Ding <dinggnu@gmail.com>
Acked-by: default avatarJason Cooper <jason@lakedaemon.net>
Acked-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Acked-by: default avatarMike Turquette <mturquette@linaro.org>
Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent 11d5993d
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ void __init of_cpu_clk_setup(struct device_node *node)

	clks = kzalloc(ncpus * sizeof(*clks), GFP_KERNEL);
	if (WARN_ON(!clks))
		return;
		goto clks_out;

	for_each_node_by_type(dn, "cpu") {
		struct clk_init_data init;
@@ -134,11 +134,11 @@ void __init of_cpu_clk_setup(struct device_node *node)
		int cpu, err;

		if (WARN_ON(!clk_name))
			return;
			goto bail_out;

		err = of_property_read_u32(dn, "reg", &cpu);
		if (WARN_ON(err))
			return;
			goto bail_out;

		sprintf(clk_name, "cpu%d", cpu);
		parent_clk = of_clk_get(node, 0);
@@ -167,6 +167,9 @@ void __init of_cpu_clk_setup(struct device_node *node)
	return;
bail_out:
	kfree(clks);
	while(ncpus--)
		kfree(cpuclk[ncpus].clk_name);
clks_out:
	kfree(cpuclk);
}