On 7/26/19 11:25 PM, Andrii Nakryiko wrote: >>> + } else if (class == BPF_ST && BPF_MODE(insn->code) == BPF_MEM) { >>> + if (insn->imm != orig_off) >>> + return -EINVAL; >>> + insn->imm = new_off; >>> + pr_debug("prog '%s': patched insn #%d (ST | MEM) imm %d -> %d\n", >>> + bpf_program__title(prog, false), >>> + insn_idx, orig_off, new_off); >> I'm pretty sure llvm was not capable of emitting BPF_ST insn. >> When did that change? > I just looked at possible instructions that could have 32-bit > immediate value. This is `*(rX) = offsetof(struct s, field)`, which I > though is conceivable. Do you think I should drop it? Just trying to point out that since it's not emitted by llvm this code is likely untested ? Or you've created a bpf asm test for this?