lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 8 Mar 2023 14:37:34 -0800
From:   Saravana Kannan <saravanak@...gle.com>
To:     Nathan Chancellor <nathan@...nel.org>
Cc:     mturquette@...libre.com, sboyd@...nel.org,
        linus.walleij@...aro.org, linux-clk@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] clk: Avoid invalid function names in CLK_OF_DECLARE()

On Wed, Mar 8, 2023 at 12:47 PM Nathan Chancellor <nathan@...nel.org> wrote:
>
> After commit c28cd1f3433c ("clk: Mark a fwnode as initialized when using
> CLK_OF_DECLARE() macro"), drivers/clk/mvebu/kirkwood.c fails to build:
>
>  drivers/clk/mvebu/kirkwood.c:358:1: error: expected identifier or '('
>  CLK_OF_DECLARE(98dx1135_clk, "marvell,mv98dx1135-core-clock",
>  ^
>  include/linux/clk-provider.h:1367:21: note: expanded from macro 'CLK_OF_DECLARE'
>          static void __init name##_of_clk_init_declare(struct device_node *np) \
>                             ^
>  <scratch space>:124:1: note: expanded from here
>  98dx1135_clk_of_clk_init_declare
>  ^
>  drivers/clk/mvebu/kirkwood.c:358:1: error: invalid digit 'd' in decimal constant
>  include/linux/clk-provider.h:1372:34: note: expanded from macro 'CLK_OF_DECLARE'
>          OF_DECLARE_1(clk, name, compat, name##_of_clk_init_declare)
>                                          ^
>  <scratch space>:125:3: note: expanded from here
>  98dx1135_clk_of_clk_init_declare
>    ^
>  drivers/clk/mvebu/kirkwood.c:358:1: error: invalid digit 'd' in decimal constant
>  include/linux/clk-provider.h:1372:34: note: expanded from macro 'CLK_OF_DECLARE'
>          OF_DECLARE_1(clk, name, compat, name##_of_clk_init_declare)
>                                          ^
>  <scratch space>:125:3: note: expanded from here
>  98dx1135_clk_of_clk_init_declare
>    ^
>  drivers/clk/mvebu/kirkwood.c:358:1: error: invalid digit 'd' in decimal constant
>  include/linux/clk-provider.h:1372:34: note: expanded from macro 'CLK_OF_DECLARE'
>          OF_DECLARE_1(clk, name, compat, name##_of_clk_init_declare)
>                                          ^
>  <scratch space>:125:3: note: expanded from here
>  98dx1135_clk_of_clk_init_declare
>    ^
>
> C function names must start with either an alphabetic letter or an
> underscore. To avoid generating invalid function names from clock names,
> add two underscores to the beginning of the identifier.
>
> Fixes: c28cd1f3433c ("clk: Mark a fwnode as initialized when using CLK_OF_DECLARE() macro")
> Suggested-by: Saravana Kannan <saravanak@...gle.com>
> Signed-off-by: Nathan Chancellor <nathan@...nel.org>
> ---
>  include/linux/clk-provider.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
> index c9f5276006a0..6f3175f0678a 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -1364,12 +1364,12 @@ struct clk_hw_onecell_data {
>  };
>
>  #define CLK_OF_DECLARE(name, compat, fn) \
> -       static void __init name##_of_clk_init_declare(struct device_node *np) \
> +       static void __init __##name##_of_clk_init_declare(struct device_node *np) \
>         {                                                               \
>                 fn(np);                                                 \
>                 fwnode_dev_initialized(of_fwnode_handle(np), true);     \
>         }                                                               \
> -       OF_DECLARE_1(clk, name, compat, name##_of_clk_init_declare)
> +       OF_DECLARE_1(clk, name, compat, __##name##_of_clk_init_declare)
>
>  /*
>   * Use this macro when you have a driver that requires two initialization

Thanks Nathan!

Reviewed-by: Saravana Kannan <saravanak@...gle.com>

-Saravana

>
> ---
> base-commit: 89dc65a7cc8a119c395c0931b12d7a514f9d2bcc
> change-id: 20230308-clk_of_declare-fix-4fb89765923e
>
> Best regards,
> --
> Nathan Chancellor <nathan@...nel.org>
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ