clk: clk-loongson2: Fix the number count of clk provider
authorBinbin Zhou <zhoubinbin@loongson.cn>
Tue, 14 Jan 2025 13:00:29 +0000 (21:00 +0800)
committerStephen Boyd <sboyd@kernel.org>
Tue, 14 Jan 2025 19:14:33 +0000 (11:14 -0800)
commit5fb33b6797633ce60908d13dc06c54a101621845
tree4072d30a1e30c27b0d464fa418d0124f4fcebe80
parent590a094e7bd2e5a10c392f13cd86489e1eb3ac86
clk: clk-loongson2: Fix the number count of clk provider

Since commit 02fb4f008433 ("clk: clk-loongson2: Fix potential buffer
overflow in flexible-array member access"), the clk provider register is
failed.

The count of `clks_num` is shown below:

for (p = data; p->name; p++)
clks_num++;

In fact, `clks_num` represents the number of SoC clocks and should be
expressed as the maximum value of the clock binding id in use (p->id + 1).

Now we fix it to avoid the following error when trying to register a clk
provider:

[ 13.409595] of_clk_hw_onecell_get: invalid index 17

Cc: stable@vger.kernel.org
Cc: Gustavo A. R. Silva <gustavoars@kernel.org>
Fixes: 02fb4f008433 ("clk: clk-loongson2: Fix potential buffer overflow in flexible-array member access")
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Link: https://lore.kernel.org/r/82e43d89a9a6791129cf8ea14f4eeb666cd87be4.1736856470.git.zhoubinbin@loongson.cn
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-loongson2.c