With CORE, it is possible that the compiler may produce code like r1 = 0 // relocation instruction map_ptr += r1 ... Currently verifier does not allow map_ptr arithmetic, even for adding with 0. This patch set relaxed the condition so the above code can be accepted. Patch #1 is the kernel implementation and Patch #2 added selftest tests to cover the new functionality. Changelog: v2 -> v3: . only change hashmap subtest to use non-inline version of check_default(), other subtests still used inline version. This will provide coverage for both inline and non-inline check_default(). (Andrey) v1 -> v2: . add comment to clarify smin_val represents the const. (Andrii) Yonghong Song (2): bpf: permit map_ptr arithmetic with opcode add and offset 0 selftests/bpf: add test for map_ptr arithmetic kernel/bpf/verifier.c | 4 +++ .../selftests/bpf/progs/map_ptr_kern.c | 10 +++++- .../testing/selftests/bpf/verifier/map_ptr.c | 32 +++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) -- 2.24.1