This comes from the BPF changes done on 4.15.0-147.
i386 uses the interpreter, while other arches have JIT. The JIT cannot be disabled on the arches that support it and have CONFIG_BPF_JIT_ALWAYS_ON, which is our default.
The interpreter change that causes this has been identified. It doesn't check that the source register is zero anymore, relying on either eBPF fixup_bpf_calls or classic BPF bpf_convert_filter doing the job of testing for it.
The test_bpf module, though, does not go through any of these conversions, which leads to the test failure. Partial revert of the interpreter changes would fix it up.
We have yet to determine if any other legitimate path for either eBPF or cBPF will skip any of these conversions. If none do, we may leave this for a later cycle.
This comes from the BPF changes done on 4.15.0-147.
i386 uses the interpreter, while other arches have JIT. The JIT cannot be disabled on the arches that support it and have CONFIG_ BPF_JIT_ ALWAYS_ ON, which is our default.
The interpreter change that causes this has been identified. It doesn't check that the source register is zero anymore, relying on either eBPF fixup_bpf_calls or classic BPF bpf_convert_filter doing the job of testing for it.
The test_bpf module, though, does not go through any of these conversions, which leads to the test failure. Partial revert of the interpreter changes would fix it up.
We have yet to determine if any other legitimate path for either eBPF or cBPF will skip any of these conversions. If none do, we may leave this for a later cycle.
Cascardo.