Re: [PATCH v3 1/6] scsi: ufs: Remove stringize operator '#' restriction
From: Steven Rostedt
Date: Mon Dec 14 2020 - 18:22:24 EST
On Mon, 14 Dec 2020 23:11:40 +0000
David Laight <David.Laight@xxxxxxxxxx> wrote:
> > ---
> > include/trace/events/ufs.h | 40 +++++++++++++++++++-------------------
> > 1 file changed, 20 insertions(+), 20 deletions(-)
> >
> > diff --git a/include/trace/events/ufs.h b/include/trace/events/ufs.h
> > index 0bd54a184391..fa755394bc0f 100644
> > --- a/include/trace/events/ufs.h
> > +++ b/include/trace/events/ufs.h
> > @@ -20,28 +20,28 @@
> ..
> > +#define UFS_LINK_STATES \
> > + EM(UIC_LINK_OFF_STATE, "UIC_LINK_OFF_STATE") \
> > + EM(UIC_LINK_ACTIVE_STATE, "UIC_LINK_ACTIVE_STATE") \
> > + EMe(UIC_LINK_HIBERN8_STATE, "UIC_LINK_HIBERN8_STATE")
>
> If you make EM a parameter to UFS_LINK_STATES then the caller
> can pass in the name of a #define that does the required expansion.
> The caller can also add in any required terminator after the last entry.
> For an enum (which doesn't want a , at the end) just add a dummy entry.
> You often want a constant for the number of items anyway.
This is currently the way its done in multiple other places. When creating
the "EMe" trick, I've thought about it, but then realized it would make the
other locations look strange without the expected comma, and decided that
EMe() would be the best solution, as it's only strange in where it's added,
and not where its used.
$ git grep -l EMe include/trace/ |wc -l
11
It's already used in 11 other files, let's not muck with it now.
-- Steve