Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data

Add the check for the return value of mtk_alloc_clk_data() in order to
avoid NULL pointer dereference.

Fixes: 3b5e748615e7 ("clk: mediatek: add clock support for MT7629 SoC")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Link: https://lore.kernel.org/r/20230912093407.21505-5-jiasheng@iscas.ac.cn
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>

authored by

Jiasheng Jiang and committed by
Stephen Boyd
2befa515 0884393c

+6
+6
drivers/clk/mediatek/clk-mt7629.c
··· 555 555 return PTR_ERR(base); 556 556 557 557 clk_data = mtk_alloc_clk_data(CLK_TOP_NR_CLK); 558 + if (!clk_data) 559 + return -ENOMEM; 558 560 559 561 mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks), 560 562 clk_data); ··· 581 579 struct clk_hw_onecell_data *clk_data; 582 580 583 581 clk_data = mtk_alloc_clk_data(CLK_INFRA_NR_CLK); 582 + if (!clk_data) 583 + return -ENOMEM; 584 584 585 585 mtk_clk_register_gates(&pdev->dev, node, infra_clks, 586 586 ARRAY_SIZE(infra_clks), clk_data); ··· 606 602 return PTR_ERR(base); 607 603 608 604 clk_data = mtk_alloc_clk_data(CLK_PERI_NR_CLK); 605 + if (!clk_data) 606 + return -ENOMEM; 609 607 610 608 mtk_clk_register_gates(&pdev->dev, node, peri_clks, 611 609 ARRAY_SIZE(peri_clks), clk_data);