From: Jiong Wang Date: Fri, 1 Dec 2017 05:32:53 +0000 (-0800) Subject: nfp: bpf: don't do ld/shifts combination if shifts are jump destination X-Git-Tag: v4.19~1702^2~431^2~1^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=29fe46efba5c3e1ac0f857a03a29f6bf0d0c5592;p=platform%2Fkernel%2Flinux-rpi3.git nfp: bpf: don't do ld/shifts combination if shifts are jump destination If any of the shift insns in the ld/shift sequence is jump destination, don't do combination. Signed-off-by: Jiong Wang Reviewed-by: Jakub Kicinski Signed-off-by: Daniel Borkmann --- diff --git a/drivers/net/ethernet/netronome/nfp/bpf/jit.c b/drivers/net/ethernet/netronome/nfp/bpf/jit.c index f2317b7..54915a3 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/jit.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/jit.c @@ -2181,6 +2181,10 @@ static void nfp_bpf_opt_ld_shift(struct nfp_prog *nfp_prog) if (next1.imm != 0x20 || next2.imm != 0x20) continue; + if (meta2->flags & FLAG_INSN_IS_JUMP_DST || + meta3->flags & FLAG_INSN_IS_JUMP_DST) + continue; + meta2->skip = true; meta3->skip = true; }