Messages in this thread | | | Date | Wed, 11 Jan 2023 19:26:16 +0000 | From | Conor Dooley <> | Subject | Re: [PATCH] clk: microchip: mpfs-ccc: Use devm_kasprintf() for allocating formatted strings |
| |
Hey Claudiu,
Could you pick this one up when you get a chance please?
Thanks, Conor.
On Tue, Jan 03, 2023 at 05:45:30PM +0100, Geert Uytterhoeven wrote: > In various places, string buffers of a fixed size are allocated, and > filled using snprintf() with the same fixed size, which is error-prone. > > Replace this by calling devm_kasprintf() instead, which always uses the > appropriate size. > > While at it, remove an unneeded intermediate variable, which allows us > to drop a cast as a bonus. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> > --- > drivers/clk/microchip/clk-mpfs-ccc.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/clk/microchip/clk-mpfs-ccc.c b/drivers/clk/microchip/clk-mpfs-ccc.c > index 32aae880a14f3b1c..0ddc73e07be42973 100644 > --- a/drivers/clk/microchip/clk-mpfs-ccc.c > +++ b/drivers/clk/microchip/clk-mpfs-ccc.c > @@ -164,12 +164,11 @@ static int mpfs_ccc_register_outputs(struct device *dev, struct mpfs_ccc_out_hw_ > > for (unsigned int i = 0; i < num_clks; i++) { > struct mpfs_ccc_out_hw_clock *out_hw = &out_hws[i]; > - char *name = devm_kzalloc(dev, 23, GFP_KERNEL); > + char *name = devm_kasprintf(dev, GFP_KERNEL, "%s_out%u", parent->name, i); > > if (!name) > return -ENOMEM; > > - snprintf(name, 23, "%s_out%u", parent->name, i); > out_hw->divider.hw.init = CLK_HW_INIT_HW(name, &parent->hw, &clk_divider_ops, 0); > out_hw->divider.reg = data->pll_base[i / MPFS_CCC_OUTPUTS_PER_PLL] + > out_hw->reg_offset; > @@ -201,14 +200,13 @@ static int mpfs_ccc_register_plls(struct device *dev, struct mpfs_ccc_pll_hw_clo > > for (unsigned int i = 0; i < num_clks; i++) { > struct mpfs_ccc_pll_hw_clock *pll_hw = &pll_hws[i]; > - char *name = devm_kzalloc(dev, 18, GFP_KERNEL); > > - if (!name) > + pll_hw->name = devm_kasprintf(dev, GFP_KERNEL, "ccc%s_pll%u", > + strchrnul(dev->of_node->full_name, '@'), i); > + if (!pll_hw->name) > return -ENOMEM; > > pll_hw->base = data->pll_base[i]; > - snprintf(name, 18, "ccc%s_pll%u", strchrnul(dev->of_node->full_name, '@'), i); > - pll_hw->name = (const char *)name; > pll_hw->hw.init = CLK_HW_INIT_PARENTS_DATA_FIXED_SIZE(pll_hw->name, > pll_hw->parents, > &mpfs_ccc_pll_ops, 0); > -- > 2.25.1 > [unhandled content-type:application/pgp-signature] | |