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

clk: mediatek: clk-mt6765: 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: 1aca9939bf72 ("clk: mediatek: Add MT6765 clock support")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Link: https://lore.kernel.org/r/20230912093407.21505-1-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
b8268104 0bb80ecc

+6
+6
drivers/clk/mediatek/clk-mt6765.c
··· 737 737 return PTR_ERR(base); 738 738 739 739 clk_data = mtk_alloc_clk_data(CLK_APMIXED_NR_CLK); 740 + if (!clk_data) 741 + return -ENOMEM; 740 742 741 743 mtk_clk_register_plls(node, plls, ARRAY_SIZE(plls), clk_data); 742 744 ··· 771 769 return PTR_ERR(base); 772 770 773 771 clk_data = mtk_alloc_clk_data(CLK_TOP_NR_CLK); 772 + if (!clk_data) 773 + return -ENOMEM; 774 774 775 775 mtk_clk_register_fixed_clks(fixed_clks, ARRAY_SIZE(fixed_clks), 776 776 clk_data); ··· 811 807 return PTR_ERR(base); 812 808 813 809 clk_data = mtk_alloc_clk_data(CLK_IFR_NR_CLK); 810 + if (!clk_data) 811 + return -ENOMEM; 814 812 815 813 mtk_clk_register_gates(&pdev->dev, node, ifr_clks, 816 814 ARRAY_SIZE(ifr_clks), clk_data);