Message ID | 20230901024658.23405-1-jiasheng@iscas.ac.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data | expand |
On Fri, Sep 01, 2023 at 10:46:58AM +0800, Jiasheng Jiang wrote: > Add the check for the return value of mtk_alloc_clk_data() in order to > avoid NULL pointer dereference. > > Fixes: e9862118272a ("clk: mediatek: Add MT2701 clock support") > Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> Reviewed-by: Markus Schneider-Pargmann <msp@baylibre.com> Best, Markus > --- > drivers/clk/mediatek/clk-mt2701.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/clk/mediatek/clk-mt2701.c b/drivers/clk/mediatek/clk-mt2701.c > index c81f3e33ce56..12d9560eb4ba 100644 > --- a/drivers/clk/mediatek/clk-mt2701.c > +++ b/drivers/clk/mediatek/clk-mt2701.c > @@ -667,6 +667,8 @@ static int mtk_topckgen_init(struct platform_device *pdev) > return PTR_ERR(base); > > clk_data = mtk_alloc_clk_data(CLK_TOP_NR); > + if (!clk_data) > + return -ENOMEM; > > mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks), > clk_data); > @@ -747,6 +749,8 @@ static void __init mtk_infrasys_init_early(struct device_node *node) > > if (!infra_clk_data) { > infra_clk_data = mtk_alloc_clk_data(CLK_INFRA_NR); > + if (!infra_clk_data) > + return; > > for (i = 0; i < CLK_INFRA_NR; i++) > infra_clk_data->hws[i] = ERR_PTR(-EPROBE_DEFER); > @@ -774,6 +778,8 @@ static int mtk_infrasys_init(struct platform_device *pdev) > > if (!infra_clk_data) { > infra_clk_data = mtk_alloc_clk_data(CLK_INFRA_NR); > + if (!infra_clk_data) > + return -ENOMEM; > } else { > for (i = 0; i < CLK_INFRA_NR; i++) { > if (infra_clk_data->hws[i] == ERR_PTR(-EPROBE_DEFER)) > @@ -890,6 +896,8 @@ static int mtk_pericfg_init(struct platform_device *pdev) > return PTR_ERR(base); > > clk_data = mtk_alloc_clk_data(CLK_PERI_NR); > + if (!clk_data) > + return -ENOMEM; > > mtk_clk_register_gates(&pdev->dev, node, peri_clks, > ARRAY_SIZE(peri_clks), clk_data); > -- > 2.25.1 >
Il 01/09/23 04:46, Jiasheng Jiang ha scritto: > Add the check for the return value of mtk_alloc_clk_data() in order to > avoid NULL pointer dereference. > > Fixes: e9862118272a ("clk: mediatek: Add MT2701 clock support") > Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Quoting Jiasheng Jiang (2023-08-31 19:46:58) > Add the check for the return value of mtk_alloc_clk_data() in order to > avoid NULL pointer dereference. > > Fixes: e9862118272a ("clk: mediatek: Add MT2701 clock support") > Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> > --- Applied to clk-next
diff --git a/drivers/clk/mediatek/clk-mt2701.c b/drivers/clk/mediatek/clk-mt2701.c index c81f3e33ce56..12d9560eb4ba 100644 --- a/drivers/clk/mediatek/clk-mt2701.c +++ b/drivers/clk/mediatek/clk-mt2701.c @@ -667,6 +667,8 @@ static int mtk_topckgen_init(struct platform_device *pdev) return PTR_ERR(base); clk_data = mtk_alloc_clk_data(CLK_TOP_NR); + if (!clk_data) + return -ENOMEM; mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks), clk_data); @@ -747,6 +749,8 @@ static void __init mtk_infrasys_init_early(struct device_node *node) if (!infra_clk_data) { infra_clk_data = mtk_alloc_clk_data(CLK_INFRA_NR); + if (!infra_clk_data) + return; for (i = 0; i < CLK_INFRA_NR; i++) infra_clk_data->hws[i] = ERR_PTR(-EPROBE_DEFER); @@ -774,6 +778,8 @@ static int mtk_infrasys_init(struct platform_device *pdev) if (!infra_clk_data) { infra_clk_data = mtk_alloc_clk_data(CLK_INFRA_NR); + if (!infra_clk_data) + return -ENOMEM; } else { for (i = 0; i < CLK_INFRA_NR; i++) { if (infra_clk_data->hws[i] == ERR_PTR(-EPROBE_DEFER)) @@ -890,6 +896,8 @@ static int mtk_pericfg_init(struct platform_device *pdev) return PTR_ERR(base); clk_data = mtk_alloc_clk_data(CLK_PERI_NR); + if (!clk_data) + return -ENOMEM; mtk_clk_register_gates(&pdev->dev, node, peri_clks, ARRAY_SIZE(peri_clks), clk_data);
Add the check for the return value of mtk_alloc_clk_data() in order to avoid NULL pointer dereference. Fixes: e9862118272a ("clk: mediatek: Add MT2701 clock support") Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn> --- drivers/clk/mediatek/clk-mt2701.c | 8 ++++++++ 1 file changed, 8 insertions(+)