[PATCH v2] clk: scmi: fix invalid clock name references

Etienne Carriere etienne.carriere at linaro.org
Tue Apr 26 10:55:43 CEST 2022


Dear all,

On Tue, 26 Apr 2022 at 09:52, Etienne Carriere
<etienne.carriere at linaro.org> wrote:
>
> Fixes clock name references in scmi_clk driver. SCMI clock names are
> retrieved from the SCMI firmware by invoking SCMI commands using the
> stack for SCMI response message hence clocks names located in the
> stack must be duplicated before being registered in the clock framework.
>
> Fixes: 7c33f78983c3 ("clk: scmi: register scmi clocks with CCF")
> Reported-by: scan-admin at coverity.com
> Signed-off-by: Etienne Carriere <etienne.carriere at linaro.org>
> ---
> Changes since v1:
> - Fix buggy test on strdup() return value
> ---
>  drivers/clk/clk_scmi.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clk/clk_scmi.c b/drivers/clk/clk_scmi.c
> index 57022685e2..c8e10c4aea 100644
> --- a/drivers/clk/clk_scmi.c
> +++ b/drivers/clk/clk_scmi.c
> @@ -1,6 +1,6 @@
>  // SPDX-License-Identifier: GPL-2.0+
>  /*
> - * Copyright (C) 2019-2020 Linaro Limited
> + * Copyright (C) 2019-2022 Linaro Limited
>   */
>
>  #define LOG_CATEGORY UCLASS_CLK
> @@ -12,6 +12,7 @@
>  #include <scmi_protocols.h>
>  #include <asm/types.h>
>  #include <linux/clk-provider.h>
> +#include <linux/string.h>
>
>  static int scmi_clk_get_num_clock(struct udevice *dev, size_t *num_clocks)
>  {
> @@ -53,7 +54,9 @@ static int scmi_clk_get_attibute(struct udevice *dev, int clkid, char **name)
>         if (ret)
>                 return ret;
>
> -       *name = out.clock_name;
> +       *name = strdup(out.clock_name);
> +       if (!*name)
> +               return -ENOMEM;
>
>         return 0;
>  }
> --
> 2.17.1
>

I posted this change too quickly and missed something.
With this change, the clock name is duplicated twice since it's already
duplicated in caller function scmi_clk_probe().

Please discard this change. I'll send a v3 proposal to address the issue
in a more consistent way.

My apologies,
Etienne


More information about the U-Boot mailing list