ERROR: Macros with complex values should be enclosed in parentheses #54: FILE: drivers/net/phy/phy_device.c:653: +#define MMD_INDICES \ + _(1) _(2) _(3) _(4) _(5) _(6) _(7) _(8) \ + _(9) _(10) _(11) _(12) _(13) _(14) _(15) _(16) \ + _(17) _(18) _(19) _(20) _(21) _(22) _(23) _(24) \ + _(25) _(26) _(27) _(28) _(29) _(30) _(31) BUT SEE: do {} while (0) advice is over-stated in a few situations: The more obvious case is macros, like MODULE_PARM_DESC, invoked at file-scope, where C disallows code (it must be in functions). See $exceptions if you have one to add by name. More troublesome is declarative macros used at top of new scope, like DECLARE_PER_CPU. These might just compile with a do-while-0 wrapper, but would be incorrect. Most of these are handled by detecting struct,union,etc declaration primitives in $exceptions. Theres also macros called inside an if (block), which "return" an expression. These cannot do-while, and need a ({}) wrapper. Enjoy this qualification while we work to improve our heuristics. WARNING: macros should not use a trailing semicolon #70: FILE: drivers/net/phy/phy_device.c:669: +#define _(x) MMD_DEVICE_ID_ATTR(x); ERROR: Macros with complex values should be enclosed in parentheses #75: FILE: drivers/net/phy/phy_device.c:674: + #define _(x) &dev_attr_mmd##x##_device_id.attr, BUT SEE: do {} while (0) advice is over-stated in a few situations: The more obvious case is macros, like MODULE_PARM_DESC, invoked at file-scope, where C disallows code (it must be in functions). See $exceptions if you have one to add by name. More troublesome is declarative macros used at top of new scope, like DECLARE_PER_CPU. These might just compile with a do-while-0 wrapper, but would be incorrect. Most of these are handled by detecting struct,union,etc declaration primitives in $exceptions. Theres also macros called inside an if (block), which "return" an expression. These cannot do-while, and need a ({}) wrapper. Enjoy this qualification while we work to improve our heuristics. total: 2 errors, 1 warnings, 0 checks, 87 lines checked NOTE: For some of the reported defects, checkpatch may be able to mechanically convert to the typical style using --fix or --fix-inplace. Commit 7f76612e7afc ("net: phy: Add c45_phy_ids sysfs directory entry") has style problems, please review. NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT BAD_REPORTED_BY_LINK CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.