CHECK: Please don't use multiple blank lines #30: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:28: + CHECK: architecture specific defines should be avoided #38: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:44: +#if defined(__x86_64__) || defined(__i386__) WARNING: line length of 88 exceeds 80 columns #49: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:55: + * For example, for an array of 'short' (signed 2-byte elements), the SIB spec would be: WARNING: line length of 96 exceeds 80 columns #52: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:58: + * The resulting SIB format: "-2@(%%rdx,%%rax,2)" for x86_64, "-2@(%%edx,%%eax,2)" for i386 WARNING: Use of volatile is usually wrong: see Documentation/process/volatile-considered-harmful.rst #54: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:60: +static volatile short array[] = {-1, -2, -3, -4}; CHECK: spaces preferred around that '%' (ctx:BxO) #57: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:63: +#define USDT_SIB_ARG_SPEC -2@(%%rdx,%%rax,2) ^ CHECK: spaces preferred around that '%' (ctx:OxV) #57: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:63: +#define USDT_SIB_ARG_SPEC -2@(%%rdx,%%rax,2) ^ ERROR: space required after that ',' (ctx:VxO) #57: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:63: +#define USDT_SIB_ARG_SPEC -2@(%%rdx,%%rax,2) ^ CHECK: spaces preferred around that '%' (ctx:OxO) #57: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:63: +#define USDT_SIB_ARG_SPEC -2@(%%rdx,%%rax,2) ^ CHECK: spaces preferred around that '%' (ctx:OxV) #57: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:63: +#define USDT_SIB_ARG_SPEC -2@(%%rdx,%%rax,2) ^ ERROR: space required after that ',' (ctx:VxV) #57: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:63: +#define USDT_SIB_ARG_SPEC -2@(%%rdx,%%rax,2) ^ ERROR: Macros with complex values should be enclosed in parentheses #57: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:63: +#define USDT_SIB_ARG_SPEC -2@(%%rdx,%%rax,2) 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: spaces preferred around that '%' (ctx:BxO) #59: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:65: +#define USDT_SIB_ARG_SPEC -2@(%%edx,%%eax,2) ^ CHECK: spaces preferred around that '%' (ctx:OxV) #59: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:65: +#define USDT_SIB_ARG_SPEC -2@(%%edx,%%eax,2) ^ ERROR: space required after that ',' (ctx:VxO) #59: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:65: +#define USDT_SIB_ARG_SPEC -2@(%%edx,%%eax,2) ^ CHECK: spaces preferred around that '%' (ctx:OxO) #59: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:65: +#define USDT_SIB_ARG_SPEC -2@(%%edx,%%eax,2) ^ CHECK: spaces preferred around that '%' (ctx:OxV) #59: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:65: +#define USDT_SIB_ARG_SPEC -2@(%%edx,%%eax,2) ^ ERROR: space required after that ',' (ctx:VxV) #59: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:65: +#define USDT_SIB_ARG_SPEC -2@(%%edx,%%eax,2) ^ ERROR: Macros with complex values should be enclosed in parentheses #59: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:65: +#define USDT_SIB_ARG_SPEC -2@(%%edx,%%eax,2) 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: externs should be avoided in .c files #62: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:68: +unsigned short test_usdt_sib_semaphore SEC(".probes"); CHECK: Lines should not end with a '(' #88: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:94: + asm volatile( CHECK: architecture specific defines should be avoided #119: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:130: +#if defined(__x86_64__) || defined(__i386__) WARNING: line length of 86 exceeds 80 columns #122: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:133: + 0 /*self*/, "/proc/self/exe", CHECK: Alignment should match open parenthesis #122: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:133: + skel->links.usdt_sib = bpf_program__attach_usdt(skel->progs.usdt_sib, + 0 /*self*/, "/proc/self/exe", WARNING: line length of 84 exceeds 80 columns #123: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:134: + "test", "usdt_sib", &opts); CHECK: architecture specific defines should be avoided #143: FILE: tools/testing/selftests/bpf/prog_tests/usdt.c:229: +#if defined(__x86_64__) || defined(__i386__) total: 6 errors, 6 warnings, 14 checks, 161 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 fceb72172492 ("selftests/bpf: Enrich subtest_basic_usdt case in selftests to cover SIB handling logic") 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.