Re: [PATCH 5.10/5.15/6.1] clk: mediatek: mt8183: Add memory

From: AngeloGioacchino Del Regno
Date: Thu Jun 06 2024 - 06:56:11 EST


Il 06/06/24 12:34, Aleksandr Mishin ha scritto:
No upstream commit exists for this commit.

The issue was introduced with commit c93d059a8045 ("clk: mediatek: mt8183:
Register 13MHz clock earlier for clocksource")

In case of memory allocation fail in clk_mt8183_top_init_early()
'top_clk_data' will be set to NULL and later dereferenced without check.
Fix this bug by adding NULL-return check.

Upstream branch code has been significantly refactored and can't be
backported directly.

Found by Linux Verification Center (linuxtesting.org) with SVACE.


There's no fixes tag, and the commit title shall be fixed, you're not
"adding memory".

Please fix - after which, it kind of makes sense to add this to stable.

Cheers,
Angelo

Signed-off-by: Aleksandr Mishin <amishin@xxxxxxxxxx>
---
drivers/clk/mediatek/clk-mt8183.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/clk/mediatek/clk-mt8183.c b/drivers/clk/mediatek/clk-mt8183.c
index 78620244144e..8377a877d9e3 100644
--- a/drivers/clk/mediatek/clk-mt8183.c
+++ b/drivers/clk/mediatek/clk-mt8183.c
@@ -1185,6 +1185,11 @@ static void clk_mt8183_top_init_early(struct device_node *node)
int i;
top_clk_data = mtk_alloc_clk_data(CLK_TOP_NR_CLK);
+ if (!top_clk_data) {
+ pr_err("%s(): could not register clock provider: %d\n",
+ __func__, -ENOMEM);
+ return;
+ }
for (i = 0; i < CLK_TOP_NR_CLK; i++)
top_clk_data->hws[i] = ERR_PTR(-EPROBE_DEFER);