WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #19: new file mode 100644 WARNING: Prefer using '"%s...", __func__' to using 'test_xdp_traits', this function's name, in a string #30: FILE: tools/testing/selftests/bpf/prog_tests/xdp_traits.c:7: + const char *file = "./test_xdp_traits.bpf.o"; CHECK: Alignment should match open parenthesis #43: FILE: tools/testing/selftests/bpf/prog_tests/xdp_traits.c:20: + LIBBPF_OPTS_RESET(topts, + .data_in = &pkt_v4, WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP #75: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:13: +#ifndef ENOTSUPP WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP #76: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:14: +#define ENOTSUPP 524 WARNING: line length of 89 exceeds 80 columns #87: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:25: +#define ASSERT_CALL(WANT, CALL) do { \ CHECK: Macro argument 'WANT' may be better as '(WANT)' to avoid precedence issues #87: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:25: +#define ASSERT_CALL(WANT, CALL) do { \ + int _ret = CALL; \ + if (_ret != WANT) { \ + bpf_printk("%d: %s ret %d want %d", __LINE__, #CALL, _ret, WANT); \ + return XDP_DROP; \ + } \ +} while (0) WARNING: Macros with flow control statements should be avoided #87: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:25: +#define ASSERT_CALL(WANT, CALL) do { \ + int _ret = CALL; \ + if (_ret != WANT) { \ + bpf_printk("%d: %s ret %d want %d", __LINE__, #CALL, _ret, WANT); \ + return XDP_DROP; \ + } \ +} while (0) WARNING: line length of 89 exceeds 80 columns #88: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:26: + int _ret = CALL; \ WARNING: line length of 89 exceeds 80 columns #89: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:27: + if (_ret != WANT) { \ WARNING: line length of 89 exceeds 80 columns #90: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:28: + bpf_printk("%d: %s ret %d want %d", __LINE__, #CALL, _ret, WANT); \ WARNING: line length of 89 exceeds 80 columns #91: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:29: + return XDP_DROP; \ WARNING: line length of 89 exceeds 80 columns #92: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:30: + } \ WARNING: line length of 105 exceeds 80 columns #95: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:33: +#define ASSERT_VAL(WANT, GOT, PTRSIZE) do { \ WARNING: Macros with flow control statements should be avoided #95: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:33: +#define ASSERT_VAL(WANT, GOT, PTRSIZE) do { \ + if (__builtin_memcmp(WANT, GOT, PTRSIZE)) { \ + switch (PTRSIZE) { \ + case 0: \ + return XDP_DROP; \ + case 4: \ + bpf_printk("%d: got %d want %d", __LINE__, *(__u32 *)GOT, *(__u32 *)WANT); \ + return XDP_DROP; \ + case 8: \ + bpf_printk("%d: got %d want %d", __LINE__, *(__u64 *)GOT, *(__u64 *)WANT); \ + return XDP_DROP; \ + } \ + } \ +} while (0) WARNING: line length of 105 exceeds 80 columns #96: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:34: + if (__builtin_memcmp(WANT, GOT, PTRSIZE)) { \ WARNING: line length of 105 exceeds 80 columns #97: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:35: + switch (PTRSIZE) { \ WARNING: line length of 105 exceeds 80 columns #98: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:36: + case 0: \ WARNING: line length of 105 exceeds 80 columns #99: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:37: + return XDP_DROP; \ WARNING: line length of 105 exceeds 80 columns #100: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:38: + case 4: \ WARNING: line length of 105 exceeds 80 columns #101: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:39: + bpf_printk("%d: got %d want %d", __LINE__, *(__u32 *)GOT, *(__u32 *)WANT); \ WARNING: line length of 105 exceeds 80 columns #102: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:40: + return XDP_DROP; \ WARNING: line length of 105 exceeds 80 columns #103: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:41: + case 8: \ WARNING: line length of 105 exceeds 80 columns #104: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:42: + bpf_printk("%d: got %d want %d", __LINE__, *(__u64 *)GOT, *(__u64 *)WANT); \ WARNING: line length of 105 exceeds 80 columns #105: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:43: + return XDP_DROP; \ WARNING: line length of 105 exceeds 80 columns #106: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:44: + } \ WARNING: line length of 105 exceeds 80 columns #107: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:45: + } \ CHECK: Macro argument 'PTRSIZE' may be better as '(PTRSIZE)' to avoid precedence issues #110: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:48: +#define FILL(PTR, PTRSIZE, VAL) do { \ + int _i; \ + for (_i = 0; _i < PTRSIZE; _i++) \ + *(((__u8 *)(PTR))+_i) = (__u8)VAL; \ +} while (0) CHECK: spaces preferred around that '+' (ctx:VxV) #113: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:51: + *(((__u8 *)(PTR))+_i) = (__u8)VAL; \ ^ WARNING: line length of 86 exceeds 80 columns #116: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:54: +static __always_inline int test(struct xdp_md *xdp, void *val, void *got, int valsize) CHECK: spaces preferred around that '+' (ctx:VxV) #152: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:90: + FILL(val, valsize, i+128); ^ WARNING: line length of 86 exceeds 80 columns #165: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:103: + ASSERT_CALL(-ENOENT, bpf_xdp_trait_get(xdp, i, val, valsize)); CHECK: spaces preferred around that '+' (ctx:VxV) #168: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:106: + FILL(val, valsize, i+128); ^ WARNING: line length of 86 exceeds 80 columns #170: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:108: + ASSERT_CALL(valsize, bpf_xdp_trait_get(xdp, i, got, valsize)); CHECK: spaces preferred around that '+' (ctx:VxV) #248: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:186: + ASSERT_CALL(-ENOSPC, bpf_xdp_trait_set(xdp, i+1, &v, sizeof(v), 0)); ^ WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP #264: FILE: tools/testing/selftests/bpf/progs/test_xdp_traits.c:202: + ASSERT_CALL(-ENOTSUPP, bpf_xdp_adjust_meta(xdp, -8)); total: 0 errors, 29 warnings, 7 checks, 239 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 365f2c8796fd ("trait: XDP selftest") 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. total: 0 errors, 29 warnings, 7 checks, 239 lines checked