WARNING: line length of 101 exceeds 80 columns #73: FILE: tools/testing/selftests/bpf/btf_helpers.c:242: + fprintf(out, "\n\t'%s' func_proto_type_id=%u loc_proto_type_id=%u offset=%d", WARNING: line length of 99 exceeds 80 columns #74: FILE: tools/testing/selftests/bpf/btf_helpers.c:243: + btf_str(btf, l->name_off), l->func_proto, l->loc_proto, l->offset); ERROR: Macros with complex values should be enclosed in parentheses #89: FILE: tools/testing/selftests/bpf/test_btf.h:87: +#define BTF_LOC_PARAM_ENC(sz, kflag, value) \ + BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_LOC, kflag, 0), (__u32)sz), \ + (value >> 32), (value & 0xffffffff) 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. CHECK: Macro argument 'value' may be better as '(value)' to avoid precedence issues #89: FILE: tools/testing/selftests/bpf/test_btf.h:87: +#define BTF_LOC_PARAM_ENC(sz, kflag, value) \ + BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_LOC, kflag, 0), (__u32)sz), \ + (value >> 32), (value & 0xffffffff) ERROR: Macros with complex values should be enclosed in parentheses #101: FILE: tools/testing/selftests/bpf/test_btf.h:99: +#define BTF_LOCSEC_LOC_ENCODE(name, func_proto, loc_proto, offset) \ + (name), (func_proto), (loc_proto), (offset) 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, 2 warnings, 1 checks, 78 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 11b82fcce303 ("selftests/bpf: Test helper support for BTF_KIND_LOC[_PARAM|_PROTO|SEC]") has style problems, please review. NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT BAD_REPORTED_BY_LINK CAMELCASE COMMIT_LOG_LONG_LINE FILE_PATH_CHANGES 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.