Unverified Commit 2fbdcd91 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!7122 v2 clk: zynq: Prevent null pointer dereference caused by kmalloc failure

parents 7e89f2c7 54598e23
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ static void __iomem *zynq_clkc_base;
#define SLCR_SWDT_CLK_SEL		(zynq_clkc_base + 0x204)

#define NUM_MIO_PINS	54
#define CLK_NAME_LEN	16

#define DBG_CLK_CTRL_CLKACT_TRC		BIT(0)
#define DBG_CLK_CTRL_CPU_1XCLKACT	BIT(1)
@@ -218,7 +219,7 @@ static void __init zynq_clk_setup(struct device_node *np)
	u32 tmp;
	int ret;
	struct clk *clk;
	char *clk_name;
	char clk_name[CLK_NAME_LEN];
	unsigned int fclk_enable = 0;
	const char *clk_output_name[clk_max];
	const char *cpu_parents[4];
@@ -428,12 +429,10 @@ static void __init zynq_clk_setup(struct device_node *np)
			"gem1_emio_mux", CLK_SET_RATE_PARENT,
			SLCR_GEM1_CLK_CTRL, 0, 0, &gem1clk_lock);

	tmp = strlen("mio_clk_00x");
	clk_name = kmalloc(tmp, GFP_KERNEL);
	for (i = 0; i < NUM_MIO_PINS; i++) {
		int idx;

		snprintf(clk_name, tmp, "mio_clk_%2.2d", i);
		snprintf(clk_name, CLK_NAME_LEN, "mio_clk_%2.2d", i);
		idx = of_property_match_string(np, "clock-names", clk_name);
		if (idx >= 0)
			can_mio_mux_parents[i] = of_clk_get_parent_name(np,
@@ -441,7 +440,6 @@ static void __init zynq_clk_setup(struct device_node *np)
		else
			can_mio_mux_parents[i] = dummy_nm;
	}
	kfree(clk_name);
	clk = clk_register_mux(NULL, "can_mux", periph_parents, 4,
			CLK_SET_RATE_NO_REPARENT, SLCR_CAN_CLK_CTRL, 4, 2, 0,
			&canclk_lock);