diff options
author | Haoyu Li <lihaoyu499@gmail.com> | 2024-12-03 22:29:15 +0800 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2024-12-03 14:54:12 -0800 |
commit | 52fd1709e41d3a85b48bcfe2404a024ebaf30c3b (patch) | |
tree | 96600eebe3dd690c1de3a3be24cb7e0efa7aef29 | |
parent | 2eb75f86d52565367211c51334d15fe672633085 (diff) | |
download | lwn-52fd1709e41d3a85b48bcfe2404a024ebaf30c3b.tar.gz lwn-52fd1709e41d3a85b48bcfe2404a024ebaf30c3b.zip |
clk: en7523: Initialize num before accessing hws in en7523_register_clocks()
With the new __counted_by annotation in clk_hw_onecell_data, the "num"
struct member must be set before accessing the "hws" array. Failing to
do so will trigger a runtime warning when enabling CONFIG_UBSAN_BOUNDS
and CONFIG_FORTIFY_SOURCE.
Fixes: f316cdff8d67 ("clk: Annotate struct clk_hw_onecell_data with __counted_by")
Signed-off-by: Haoyu Li <lihaoyu499@gmail.com>
Link: https://lore.kernel.org/r/20241203142915.345523-1-lihaoyu499@gmail.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
-rw-r--r-- | drivers/clk/clk-en7523.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/clk/clk-en7523.c b/drivers/clk/clk-en7523.c index 239cb04d9ae3..495c0d607c7d 100644 --- a/drivers/clk/clk-en7523.c +++ b/drivers/clk/clk-en7523.c @@ -504,6 +504,8 @@ static void en7523_register_clocks(struct device *dev, struct clk_hw_onecell_dat u32 rate; int i; + clk_data->num = EN7523_NUM_CLOCKS; + for (i = 0; i < ARRAY_SIZE(en7523_base_clks); i++) { const struct en_clk_desc *desc = &en7523_base_clks[i]; u32 reg = desc->div_reg ? desc->div_reg : desc->base_reg; @@ -525,8 +527,6 @@ static void en7523_register_clocks(struct device *dev, struct clk_hw_onecell_dat hw = en7523_register_pcie_clk(dev, np_base); clk_data->hws[EN7523_CLK_PCIE] = hw; - - clk_data->num = EN7523_NUM_CLOCKS; } static int en7523_clk_hw_init(struct platform_device *pdev, |