Re: [PATCH] staging: rtl8723bs: cleanup macros within include/rtw_debug.h

From: Greg KH
Date: Wed Feb 10 2021 - 12:51:52 EST


On Wed, Feb 10, 2021 at 05:34:38PM +0000, Phillip Potter wrote:
> On Wed, Feb 10, 2021 at 06:12:54PM +0100, Greg KH wrote:
> > On Wed, Feb 10, 2021 at 05:00:03PM +0000, Phillip Potter wrote:
> > > Remove do/while loops from DBG_871X, MSG_8192C and DBG_8192C. Also
> > > fix opening brace placements and trailing single statement layout within
> > > RT_PRINT_DATA, as well as making newline character placement more
> > > consistent and removing camel case where possible. Finally, add
> > > parentheses for DBG_COUNTER definition.
> > >
> > > This fixes 3 checkpatch warnings, 5 checkpatch errors and 3 checkpatch
> > > checks.
> > >
> > > Signed-off-by: Phillip Potter <phil@xxxxxxxxxxxxxxxx>
> > > ---
> > > drivers/staging/rtl8723bs/include/rtw_debug.h | 40 +++++++++----------
> > > 1 file changed, 19 insertions(+), 21 deletions(-)
> > >
> > > diff --git a/drivers/staging/rtl8723bs/include/rtw_debug.h b/drivers/staging/rtl8723bs/include/rtw_debug.h
> > > index c90adfb87261..d06ac9540cf7 100644
> > > --- a/drivers/staging/rtl8723bs/include/rtw_debug.h
> > > +++ b/drivers/staging/rtl8723bs/include/rtw_debug.h
> > > @@ -201,19 +201,16 @@
> > > #ifdef DEBUG
> > > #if defined(_dbgdump)
> > > #undef DBG_871X
> > > - #define DBG_871X(...) do {\
> > > - _dbgdump(DRIVER_PREFIX __VA_ARGS__);\
> > > - } while (0)
> > > + #define DBG_871X(...)\
> > > + _dbgdump(DRIVER_PREFIX __VA_ARGS__)
> > >
> > > #undef MSG_8192C
> > > - #define MSG_8192C(...) do {\
> > > - _dbgdump(DRIVER_PREFIX __VA_ARGS__);\
> > > - } while (0)
> > > + #define MSG_8192C(...)\
> > > + _dbgdump(DRIVER_PREFIX __VA_ARGS__)
> > >
> > > #undef DBG_8192C
> > > - #define DBG_8192C(...) do {\
> > > - _dbgdump(DRIVER_PREFIX __VA_ARGS__);\
> > > - } while (0)
> > > + #define DBG_8192C(...)\
> > > + _dbgdump(DRIVER_PREFIX __VA_ARGS__)
> >
> > Odd, the do/while is correct here, why is checkpatch complaining about
> > it?
>
> The warning it gives me for these is:
> WARNING: Single statement macros should not use a do {} while (0) loop

Ah.

What a mess.

I would recommend starting to unwind the "debugging" macro mess here,
all that a driver should be using is the netdev_dbg() and friends
functions, not this mess of "printk or no printk" that it currently is.

If you replace _dbgdump with what it is defined with, then go from there
and replace the DBG_8192C and friends with what they should be, and so
on. That's a much better overall solution than to just paper over this
with a checkpatch cleanup.

thanks,

greg k-h