Re: [PATCH v1 1/1] device property: Replace custom implementation of COUNT_ARGS()

From: Nick Desaulniers
Date: Wed Sep 20 2023 - 12:51:06 EST


On Wed, Sep 20, 2023 at 8:38 AM Andy Shevchenko
<andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
>
> Replace custom and non-portable implementation of COUNT_ARGS().
>
> Fixes: e64b674bc9d7 ("software node: implement reference properties")
> Reported-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> Closes: https://lore.kernel.org/r/ZQoILN6QCjzosCOs@xxxxxxxxxx

Thanks for the patch!
Closes: https://github.com/ClangBuiltLinux/linux/issues/1935
Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

Of course Linux would have a macro for this! I should have known.
Trying to wrap my head around it. Awesome

> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> ---
> include/linux/property.h | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/property.h b/include/linux/property.h
> index 1684fca930f7..55c2692ffa8c 100644
> --- a/include/linux/property.h
> +++ b/include/linux/property.h
> @@ -10,6 +10,7 @@
> #ifndef _LINUX_PROPERTY_H_
> #define _LINUX_PROPERTY_H_
>
> +#include <linux/args.h>
> #include <linux/bits.h>
> #include <linux/fwnode.h>
> #include <linux/stddef.h>
> @@ -314,7 +315,7 @@ struct software_node_ref_args {
> #define SOFTWARE_NODE_REFERENCE(_ref_, ...) \
> (const struct software_node_ref_args) { \
> .node = _ref_, \
> - .nargs = ARRAY_SIZE(((u64[]){ 0, ##__VA_ARGS__ })) - 1, \
> + .nargs = COUNT_ARGS(__VA_ARGS__), \
> .args = { __VA_ARGS__ }, \
> }
>
> --
> 2.40.0.1.gaa8946217a0b
>


--
Thanks,
~Nick Desaulniers