> The JIT does not implement atomics on arena pointers (BPF_PROBE_ATOMIC)
> nor sign-extending loads from the arena (BPF_PROBE_MEM32SX). Without a
> bpf_jit_supports_insn() callback the verifier assumes both are available,
> so such programs are accepted only to fail later in the JIT with a
> confusing -EINVAL 'unknown opcode'.
> Implement bpf_jit_supports_insn() to reject these instructions in the
> arena case. The verifier then rejects the program early with a clear
> message ('BPF_ATOMIC stores into R<n> ... is not allowed' / 'sign
> extending loads from arena are not supported yet'). Regular arena
> accesses (BPF_PROBE_MEM32 loads/stores of all sizes) remain supported.
> Signed-off-by: George Guo <[email protected]>
This looks like it fixes a gap that was introduced when arena support
was first advertised via bpf_jit_supports_arena() returning true.
Should this carry a Fixes: tag?
Fixes: 4fdb5dd8aeba ("LoongArch: BPF: Implement bpf_addr_space_cast
instruction")
---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/27735575341