On Thu, Jul 1, 2021 at 8:09 AM Naveen N. Rao <naveen.n.rao@xxxxxxxxxxxxxxxxxx> wrote: > > Commit 91c960b0056672 ("bpf: Rename BPF_XADD and prepare to encode other > atomics in .imm") converted BPF_XADD to BPF_ATOMIC and added a way to > distinguish instructions based on the immediate field. Existing JIT > implementations were updated to check for the immediate field and to > reject programs utilizing anything more than BPF_ADD (such as BPF_FETCH) > in the immediate field. > > However, the check added to powerpc64 JIT did not look at the correct > BPF instruction. Due to this, such programs would be accepted and > incorrectly JIT'ed resulting in soft lockups, as seen with the atomic > bounds test. Fix this by looking at the correct immediate value. > > Fixes: 91c960b0056672 ("bpf: Rename BPF_XADD and prepare to encode other atomics in .imm") > Reported-by: Jiri Olsa <jolsa@xxxxxxxxxx> > Tested-by: Jiri Olsa <jolsa@xxxxxxxxxx> > Signed-off-by: Naveen N. Rao <naveen.n.rao@xxxxxxxxxxxxxxxxxx> > --- > Hi Jiri, > FYI: I made a small change in this patch -- using 'imm' directly, rather > than insn[i].imm. I've still added your Tested-by since this shouldn't > impact the fix in any way. > > - Naveen Excellent debugging! You guys are awesome. How do you want this fix routed? via bpf tree?