[PATCH] clk/mediatek: fix missing null-check for mt7622

Chengfeng Ye posted 1 patch 2 years, 10 months ago
drivers/clk/mediatek/clk-mt7622.c | 6 ++++++
1 file changed, 6 insertions(+)
[PATCH] clk/mediatek: fix missing null-check for mt7622
Posted by Chengfeng Ye 2 years, 10 months ago
The return pointer of mtk_alloc_clk_data could
be null, adding null check for all the call sites.

Signed-off-by: Chengfeng Ye <cyeaa@connect.ust.hk>
---
 drivers/clk/mediatek/clk-mt7622.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/clk/mediatek/clk-mt7622.c b/drivers/clk/mediatek/clk-mt7622.c
index ef5947e15c75..f16b3655ff76 100644
--- a/drivers/clk/mediatek/clk-mt7622.c
+++ b/drivers/clk/mediatek/clk-mt7622.c
@@ -620,6 +620,8 @@ static int mtk_topckgen_init(struct platform_device *pdev)
 		return PTR_ERR(base);
 
 	clk_data = mtk_alloc_clk_data(CLK_TOP_NR_CLK);
+	if (!clk_data)
+		return -ENOMEM;
 
 	mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks),
 				    clk_data);
@@ -650,6 +652,8 @@ static int mtk_infrasys_init(struct platform_device *pdev)
 	int r;
 
 	clk_data = mtk_alloc_clk_data(CLK_INFRA_NR_CLK);
+	if (!clk_data)
+		return -ENOMEM;
 
 	mtk_clk_register_gates(node, infra_clks, ARRAY_SIZE(infra_clks),
 			       clk_data);
@@ -700,6 +704,8 @@ static int mtk_pericfg_init(struct platform_device *pdev)
 		return PTR_ERR(base);
 
 	clk_data = mtk_alloc_clk_data(CLK_PERI_NR_CLK);
+	if (!clk_data)
+		return -ENOMEM;
 
 	mtk_clk_register_gates(node, peri_clks, ARRAY_SIZE(peri_clks),
 			       clk_data);
-- 
2.17.1

Re: [PATCH] clk/mediatek: fix missing null-check for mt7622
Posted by Matthias Brugger 2 years, 10 months ago

On 30/10/2021 16:07, Chengfeng Ye wrote:
> The return pointer of mtk_alloc_clk_data could
> be null, adding null check for all the call sites.
> 
> Signed-off-by: Chengfeng Ye <cyeaa@connect.ust.hk>

This pattern is seen in nearly all MediaTek clock drivers. Is there any specific 
reason that you only fix the three?

Would you mind to check all of them and send the patches as a series instead of 
every patch one by one?

Regards,
Matthias

> ---
>   drivers/clk/mediatek/clk-mt7622.c | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/clk/mediatek/clk-mt7622.c b/drivers/clk/mediatek/clk-mt7622.c
> index ef5947e15c75..f16b3655ff76 100644
> --- a/drivers/clk/mediatek/clk-mt7622.c
> +++ b/drivers/clk/mediatek/clk-mt7622.c
> @@ -620,6 +620,8 @@ static int mtk_topckgen_init(struct platform_device *pdev)
>   		return PTR_ERR(base);
>   
>   	clk_data = mtk_alloc_clk_data(CLK_TOP_NR_CLK);
> +	if (!clk_data)
> +		return -ENOMEM;
>   
>   	mtk_clk_register_fixed_clks(top_fixed_clks, ARRAY_SIZE(top_fixed_clks),
>   				    clk_data);
> @@ -650,6 +652,8 @@ static int mtk_infrasys_init(struct platform_device *pdev)
>   	int r;
>   
>   	clk_data = mtk_alloc_clk_data(CLK_INFRA_NR_CLK);
> +	if (!clk_data)
> +		return -ENOMEM;
>   
>   	mtk_clk_register_gates(node, infra_clks, ARRAY_SIZE(infra_clks),
>   			       clk_data);
> @@ -700,6 +704,8 @@ static int mtk_pericfg_init(struct platform_device *pdev)
>   		return PTR_ERR(base);
>   
>   	clk_data = mtk_alloc_clk_data(CLK_PERI_NR_CLK);
> +	if (!clk_data)
> +		return -ENOMEM;
>   
>   	mtk_clk_register_gates(node, peri_clks, ARRAY_SIZE(peri_clks),
>   			       clk_data);
>