Hi Brendan, I love your patch! Yet something to improve: [auto build test ERROR on 34da87213d3ddd26643aa83deff7ffc6463da0fc] url: https://github.com/0day-ci/linux/commits/Brendan-Jackman/Atomics-for-eBPF/20201208-001343 base: 34da87213d3ddd26643aa83deff7ffc6463da0fc config: m68k-randconfig-r022-20201209 (attached as .config) compiler: m68k-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/2a65bda50b756e76e985b1d2bba80b3023a9cdc3 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Brendan-Jackman/Atomics-for-eBPF/20201208-001343 git checkout 2a65bda50b756e76e985b1d2bba80b3023a9cdc3 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): kernel/bpf/core.c:1350:12: warning: no previous prototype for 'bpf_probe_read_kernel' [-Wmissing-prototypes] 1350 | u64 __weak bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr) | ^~~~~~~~~~~~~~~~~~~~~ In file included from kernel/bpf/core.c:21: kernel/bpf/core.c: In function '___bpf_prog_run': include/linux/filter.h:1000:3: warning: cast between incompatible function types from 'u64 (*)(u64, u64, u64, u64, u64)' {aka 'long long unsigned int (*)(long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int)'} to 'u64 (*)(u64, u64, u64, u64, u64, const struct bpf_insn *)' {aka 'long long unsigned int (*)(long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, const struct bpf_insn *)'} [-Wcast-function-type] 1000 | ((u64 (*)(u64, u64, u64, u64, u64, const struct bpf_insn *)) \ | ^ kernel/bpf/core.c:1518:13: note: in expansion of macro '__bpf_call_base_args' 1518 | BPF_R0 = (__bpf_call_base_args + insn->imm)(BPF_R1, BPF_R2, | ^~~~~~~~~~~~~~~~~~~~ kernel/bpf/core.c:1638:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1638 | (atomic64_t *)(s64) (DST + insn->off)); \ | ^ kernel/bpf/core.c:1644:3: note: in expansion of macro 'ATOMIC_ALU_OP' 1644 | ATOMIC_ALU_OP(BPF_ADD, add) | ^~~~~~~~~~~~~ kernel/bpf/core.c:1638:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1638 | (atomic64_t *)(s64) (DST + insn->off)); \ | ^ kernel/bpf/core.c:1645:3: note: in expansion of macro 'ATOMIC_ALU_OP' 1645 | ATOMIC_ALU_OP(BPF_AND, and) | ^~~~~~~~~~~~~ kernel/bpf/core.c:1638:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1638 | (atomic64_t *)(s64) (DST + insn->off)); \ | ^ kernel/bpf/core.c:1646:3: note: in expansion of macro 'ATOMIC_ALU_OP' 1646 | ATOMIC_ALU_OP(BPF_OR, or) | ^~~~~~~~~~~~~ kernel/bpf/core.c:1638:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1638 | (atomic64_t *)(s64) (DST + insn->off)); \ | ^ kernel/bpf/core.c:1647:3: note: in expansion of macro 'ATOMIC_ALU_OP' 1647 | ATOMIC_ALU_OP(BPF_XOR, xor) | ^~~~~~~~~~~~~ kernel/bpf/core.c:1657:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1657 | (atomic64_t *)(u64) (DST + insn->off), | ^ kernel/bpf/core.c:1667:6: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 1667 | (atomic64_t *)(u64) (DST + insn->off), | ^ In file included from kernel/bpf/core.c:21: kernel/bpf/core.c: In function 'bpf_patch_call_args': include/linux/filter.h:1000:3: warning: cast between incompatible function types from 'u64 (*)(u64, u64, u64, u64, u64)' {aka 'long long unsigned int (*)(long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int)'} to 'u64 (*)(u64, u64, u64, u64, u64, const struct bpf_insn *)' {aka 'long long unsigned int (*)(long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, long long unsigned int, const struct bpf_insn *)'} [-Wcast-function-type] 1000 | ((u64 (*)(u64, u64, u64, u64, u64, const struct bpf_insn *)) \ | ^ kernel/bpf/core.c:1756:3: note: in expansion of macro '__bpf_call_base_args' 1756 | __bpf_call_base_args; | ^~~~~~~~~~~~~~~~~~~~ {standard input}: Assembler messages: >> {standard input}:3068: Error: operands mismatch -- statement `orl %a1,%d0' ignored {standard input}:3068: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `casl %d4,%d0,(%a6)' ignored {standard input}:3116: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `casl %d1,%d5,(%a6,%d0.l)' ignored {standard input}:3163: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `casl %d4,%d0,(%a6)' ignored >> {standard input}:3225: Error: operands mismatch -- statement `andl %a1,%d0' ignored {standard input}:3225: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `casl %d4,%d0,(%a6)' ignored >> {standard input}:3290: Error: operands mismatch -- statement `eorl %a1,%d0' ignored {standard input}:3290: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `casl %d4,%d0,(%a6)' ignored {standard input}:3316: Error: invalid instruction for this architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030 [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `casl %d0,%d5,(%a0)' ignored --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org