diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2024-06-06 19:09:32 +0300 |
---|---|---|
committer | Heiko Stuebner <heiko@sntech.de> | 2024-06-23 22:10:48 +0200 |
commit | fc547ab06c87f7c4a7e2425a89759f7a9a6fd7c1 (patch) | |
tree | 93a07138063df21acc5ad01e826cad9258cd0ae7 /drivers/clk | |
parent | 5c0e997e57a66bd225318963193b8d006adbbb47 (diff) | |
download | lwn-fc547ab06c87f7c4a7e2425a89759f7a9a6fd7c1.tar.gz lwn-fc547ab06c87f7c4a7e2425a89759f7a9a6fd7c1.zip |
clk: rockchip: Switch to use kmemdup_array()
Let the kememdup_array() take care about multiplication and possible
overflows.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240606161028.2986587-3-andriy.shevchenko@linux.intel.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/rockchip/clk-cpu.c | 5 | ||||
-rw-r--r-- | drivers/clk/rockchip/clk-pll.c | 8 |
2 files changed, 6 insertions, 7 deletions
diff --git a/drivers/clk/rockchip/clk-cpu.c b/drivers/clk/rockchip/clk-cpu.c index 6ea7fba9f9e5..398a226ad34e 100644 --- a/drivers/clk/rockchip/clk-cpu.c +++ b/drivers/clk/rockchip/clk-cpu.c @@ -369,9 +369,8 @@ struct clk *rockchip_clk_register_cpuclk(const char *name, if (nrates > 0) { cpuclk->rate_count = nrates; - cpuclk->rate_table = kmemdup(rates, - sizeof(*rates) * nrates, - GFP_KERNEL); + cpuclk->rate_table = kmemdup_array(rates, nrates, sizeof(*rates), + GFP_KERNEL); if (!cpuclk->rate_table) { ret = -ENOMEM; goto unregister_notifier; diff --git a/drivers/clk/rockchip/clk-pll.c b/drivers/clk/rockchip/clk-pll.c index 2d42eb628926..606ce5458f54 100644 --- a/drivers/clk/rockchip/clk-pll.c +++ b/drivers/clk/rockchip/clk-pll.c @@ -1136,10 +1136,10 @@ struct clk *rockchip_clk_register_pll(struct rockchip_clk_provider *ctx, len++; pll->rate_count = len; - pll->rate_table = kmemdup(rate_table, - pll->rate_count * - sizeof(struct rockchip_pll_rate_table), - GFP_KERNEL); + pll->rate_table = kmemdup_array(rate_table, + pll->rate_count, + sizeof(*pll->rate_table), + GFP_KERNEL); WARN(!pll->rate_table, "%s: could not allocate rate table for %s\n", __func__, name); |