Message ID | 20230920153819.2069869-1-andriy.shevchenko@linux.intel.com |
---|---|
State | Accepted |
Commit | 1dc05a274a7b13fd61b6c43f0136153752e6f731 |
Headers | show |
Series | [v1,1/1] device property: Replace custom implementation of COUNT_ARGS() | expand |
On Wed, 20 Sep 2023 17:38:19 +0200, Andy Shevchenko wrote: > > Replace custom and non-portable implementation of COUNT_ARGS(). > > Fixes: e64b674bc9d7 ("software node: implement reference properties") > Reported-by: Nick Desaulniers <ndesaulniers@google.com> > Closes: https://lore.kernel.org/r/ZQoILN6QCjzosCOs@google.com > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > 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__ }, \ > } > Reviewed-by: Takashi Iwai <tiwai@suse.de> NR_FWNODE_REFERENCE_ARGS is 8, so the COUNT_ARGS() macro should suffice. thanks, Takashi
On Wed, Sep 20, 2023 at 8:38 AM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > Replace custom and non-portable implementation of COUNT_ARGS(). > > Fixes: e64b674bc9d7 ("software node: implement reference properties") > Reported-by: Nick Desaulniers <ndesaulniers@google.com> > Closes: https://lore.kernel.org/r/ZQoILN6QCjzosCOs@google.com Thanks for the patch! Closes: https://github.com/ClangBuiltLinux/linux/issues/1935 Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> 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@linux.intel.com> > --- > 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 >
On Wed, Sep 20, 2023 at 9:50 AM Nick Desaulniers <ndesaulniers@google.com> wrote: > > On Wed, Sep 20, 2023 at 8:38 AM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: > > > > Replace custom and non-portable implementation of COUNT_ARGS(). > > > > Fixes: e64b674bc9d7 ("software node: implement reference properties") > > Reported-by: Nick Desaulniers <ndesaulniers@google.com> > > Closes: https://lore.kernel.org/r/ZQoILN6QCjzosCOs@google.com > > Thanks for the patch! > Closes: https://github.com/ClangBuiltLinux/linux/issues/1935 > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > > Of course Linux would have a macro for this! I should have known. > Trying to wrap my head around it. Awesome (resending as text/plain) Can someone pick this up for linux-next? CI for linux-next has been red for days over this. > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > --- > > 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
On Fri, Sep 29, 2023 at 09:10:11AM -0700, Nick Desaulniers wrote: > On Wed, Sep 20, 2023 at 9:50 AM Nick Desaulniers > <ndesaulniers@google.com> wrote: > > > > On Wed, Sep 20, 2023 at 8:38 AM Andy Shevchenko > > <andriy.shevchenko@linux.intel.com> wrote: > > > > > > Replace custom and non-portable implementation of COUNT_ARGS(). > > > > > > Fixes: e64b674bc9d7 ("software node: implement reference properties") > > > Reported-by: Nick Desaulniers <ndesaulniers@google.com> > > > Closes: https://lore.kernel.org/r/ZQoILN6QCjzosCOs@google.com > > > > Thanks for the patch! > > Closes: https://github.com/ClangBuiltLinux/linux/issues/1935 > > Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > > > > Of course Linux would have a macro for this! I should have known. > > Trying to wrap my head around it. Awesome > > (resending as text/plain) > > Can someone pick this up for linux-next? > > CI for linux-next has been red for days over this. Will do, give me a chance to catch up... greg k-h
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__ }, \ }
Replace custom and non-portable implementation of COUNT_ARGS(). Fixes: e64b674bc9d7 ("software node: implement reference properties") Reported-by: Nick Desaulniers <ndesaulniers@google.com> Closes: https://lore.kernel.org/r/ZQoILN6QCjzosCOs@google.com Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- include/linux/property.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)