On Fri, Mar 26, 2021 at 10:09:11AM +0100, Fabio Aiuto wrote: > fix the following checkpatch warnings: > > ERROR: Macros with complex values should be enclosed in parentheses > 154: FILE: drivers/staging/rtl8723bs/include/basic_types.h:154: > +#define SET_BITS_TO_LE_4BYTE(__pstart, __bitoffset, __bitlen, __val) \ > -- > ERROR: Macros with multiple statements should be enclosed in > a do - while loop > 161: FILE: drivers/staging/rtl8723bs/include/basic_types.h:161: > +#define SET_BITS_TO_LE_2BYTE(__pstart, __bitoffset, __bitlen, __val) \ > -- > ERROR: Macros with complex values should be enclosed in parentheses > 168: FILE: drivers/staging/rtl8723bs/include/basic_types.h:168: > +#define SET_BITS_TO_LE_1BYTE(__pstart, __bitoffset, __bitlen, __val) \ > > parentheses solution preferred for all fixes and made macros more > readables > > Signed-off-by: Fabio Aiuto <fabioaiuto83@xxxxxxxxx> > --- > .../staging/rtl8723bs/include/basic_types.h | 30 +++++++++++-------- > 1 file changed, 18 insertions(+), 12 deletions(-) > > diff --git a/drivers/staging/rtl8723bs/include/basic_types.h b/drivers/staging/rtl8723bs/include/basic_types.h > index 76304086107a..5054c2e3384c 100644 > --- a/drivers/staging/rtl8723bs/include/basic_types.h > +++ b/drivers/staging/rtl8723bs/include/basic_types.h > @@ -152,24 +152,30 @@ > /* Set subfield of little-endian 4-byte value to specified value. */ > /* */ > #define SET_BITS_TO_LE_4BYTE(__pstart, __bitoffset, __bitlen, __val) \ > - *((u32 *)(__pstart)) = \ > - ( \ > - LE_BITS_CLEARED_TO_4BYTE(__pstart, __bitoffset, __bitlen) | \ > - ((((u32)__val) & BIT_LEN_MASK_32(__bitlen)) << (__bitoffset)) \ > + (\ > + *((u32 *)(__pstart)) = \ > + ( \ > + LE_BITS_CLEARED_TO_4BYTE(__pstart, __bitoffset, __bitlen) | \ > + ((((u32)__val) & BIT_LEN_MASK_32(__bitlen)) << (__bitoffset)) \ > + )\ > ) > These macros are terrible and this makes it uglier. Better to just ignore checkpatch until we can figure out a way to re-write this properly. regards, dan carpenter