2022-03-25 17:27:18

by Xiaoke Wang

[permalink] [raw]
Subject: [PATCH] clk: pxa: add a check for the return value of kzalloc()

From: Xiaoke Wang <[email protected]>

kzalloc() is a memory allocation function which can return NULL when
some internal memory errors happen. So it is better to check it to
prevent potential wrong memory access.

Signed-off-by: Xiaoke Wang <[email protected]>
---
drivers/clk/pxa/clk-pxa.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/clk/pxa/clk-pxa.c b/drivers/clk/pxa/clk-pxa.c
index cfc79f9..d0df104 100644
--- a/drivers/clk/pxa/clk-pxa.c
+++ b/drivers/clk/pxa/clk-pxa.c
@@ -102,6 +102,8 @@ int __init clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks)

for (i = 0; i < nb_clks; i++) {
pxa_clk = kzalloc(sizeof(*pxa_clk), GFP_KERNEL);
+ if (!pxa_clk)
+ continue;
pxa_clk->is_in_low_power = clks[i].is_in_low_power;
pxa_clk->lp = clks[i].lp;
pxa_clk->hp = clks[i].hp;
--


2022-04-07 21:02:39

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH] clk: pxa: add a check for the return value of kzalloc()

Quoting [email protected] (2022-03-25 03:27:20)
> From: Xiaoke Wang <[email protected]>
>
> kzalloc() is a memory allocation function which can return NULL when
> some internal memory errors happen. So it is better to check it to
> prevent potential wrong memory access.
>
> Signed-off-by: Xiaoke Wang <[email protected]>
> ---
> drivers/clk/pxa/clk-pxa.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/clk/pxa/clk-pxa.c b/drivers/clk/pxa/clk-pxa.c
> index cfc79f9..d0df104 100644
> --- a/drivers/clk/pxa/clk-pxa.c
> +++ b/drivers/clk/pxa/clk-pxa.c
> @@ -102,6 +102,8 @@ int __init clk_pxa_cken_init(const struct desc_clk_cken *clks, int nb_clks)
>
> for (i = 0; i < nb_clks; i++) {
> pxa_clk = kzalloc(sizeof(*pxa_clk), GFP_KERNEL);
> + if (!pxa_clk)
> + continue;

Shouldn't we stop trying to allocate more and return an error?