From: Song Liu <song@kernel.org> To: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> Cc: Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>, Daniel Borkmann <daniel@iogearbox.net>, Alexei Starovoitov <alexei.starovoitov@gmail.com>, Christophe Leroy <christophe.leroy@csgroup.eu>, Johan Almbladh <johan.almbladh@anyfinetworks.com>, bpf <bpf@vger.kernel.org>, linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH 6/9] powerpc/bpf: Fix BPF_SUB when imm == 0x80000000 Date: Fri, 1 Oct 2021 15:01:07 -0700 [thread overview] Message-ID: <CAPhsuW5NraEPybLVcKWzHva4ksTa05msv-2PBdFXPt_J+=xTyw@mail.gmail.com> (raw) In-Reply-To: <1912a409447071f46ac6cc957ce8edea0e5232b7.1633104510.git.naveen.n.rao@linux.vnet.ibm.com> On Fri, Oct 1, 2021 at 2:17 PM Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> wrote: > > We aren't handling subtraction involving an immediate value of > 0x80000000 properly. Fix the same. > > Fixes: 156d0e290e969c ("powerpc/ebpf/jit: Implement JIT compiler for extended BPF") > Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Acked-by: Song Liu <songliubraving@fb.com> > --- > arch/powerpc/net/bpf_jit_comp64.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c > index ffb7a2877a8469..4641a50e82d50d 100644 > --- a/arch/powerpc/net/bpf_jit_comp64.c > +++ b/arch/powerpc/net/bpf_jit_comp64.c > @@ -333,15 +333,15 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, struct codegen_context * > case BPF_ALU | BPF_SUB | BPF_K: /* (u32) dst -= (u32) imm */ > case BPF_ALU64 | BPF_ADD | BPF_K: /* dst += imm */ > case BPF_ALU64 | BPF_SUB | BPF_K: /* dst -= imm */ > - if (BPF_OP(code) == BPF_SUB) > - imm = -imm; > - if (imm) { > - if (imm >= -32768 && imm < 32768) > - EMIT(PPC_RAW_ADDI(dst_reg, dst_reg, IMM_L(imm))); > - else { > - PPC_LI32(b2p[TMP_REG_1], imm); > + if (imm > -32768 && imm < 32768) { > + EMIT(PPC_RAW_ADDI(dst_reg, dst_reg, > + BPF_OP(code) == BPF_SUB ? IMM_L(-imm) : IMM_L(imm))); > + } else { > + PPC_LI32(b2p[TMP_REG_1], imm); > + if (BPF_OP(code) == BPF_SUB) > + EMIT(PPC_RAW_SUB(dst_reg, dst_reg, b2p[TMP_REG_1])); > + else > EMIT(PPC_RAW_ADD(dst_reg, dst_reg, b2p[TMP_REG_1])); > - } > } > goto bpf_alu32_trunc; > case BPF_ALU | BPF_MUL | BPF_X: /* (u32) dst *= (u32) src */ > -- > 2.33.0 >
WARNING: multiple messages have this Message-ID (diff)
From: Song Liu <song@kernel.org> To: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> Cc: Daniel Borkmann <daniel@iogearbox.net>, Johan Almbladh <johan.almbladh@anyfinetworks.com>, Nicholas Piggin <npiggin@gmail.com>, bpf <bpf@vger.kernel.org>, linuxppc-dev@lists.ozlabs.org, Alexei Starovoitov <alexei.starovoitov@gmail.com> Subject: Re: [PATCH 6/9] powerpc/bpf: Fix BPF_SUB when imm == 0x80000000 Date: Fri, 1 Oct 2021 15:01:07 -0700 [thread overview] Message-ID: <CAPhsuW5NraEPybLVcKWzHva4ksTa05msv-2PBdFXPt_J+=xTyw@mail.gmail.com> (raw) In-Reply-To: <1912a409447071f46ac6cc957ce8edea0e5232b7.1633104510.git.naveen.n.rao@linux.vnet.ibm.com> On Fri, Oct 1, 2021 at 2:17 PM Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> wrote: > > We aren't handling subtraction involving an immediate value of > 0x80000000 properly. Fix the same. > > Fixes: 156d0e290e969c ("powerpc/ebpf/jit: Implement JIT compiler for extended BPF") > Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Acked-by: Song Liu <songliubraving@fb.com> > --- > arch/powerpc/net/bpf_jit_comp64.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/arch/powerpc/net/bpf_jit_comp64.c b/arch/powerpc/net/bpf_jit_comp64.c > index ffb7a2877a8469..4641a50e82d50d 100644 > --- a/arch/powerpc/net/bpf_jit_comp64.c > +++ b/arch/powerpc/net/bpf_jit_comp64.c > @@ -333,15 +333,15 @@ int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, struct codegen_context * > case BPF_ALU | BPF_SUB | BPF_K: /* (u32) dst -= (u32) imm */ > case BPF_ALU64 | BPF_ADD | BPF_K: /* dst += imm */ > case BPF_ALU64 | BPF_SUB | BPF_K: /* dst -= imm */ > - if (BPF_OP(code) == BPF_SUB) > - imm = -imm; > - if (imm) { > - if (imm >= -32768 && imm < 32768) > - EMIT(PPC_RAW_ADDI(dst_reg, dst_reg, IMM_L(imm))); > - else { > - PPC_LI32(b2p[TMP_REG_1], imm); > + if (imm > -32768 && imm < 32768) { > + EMIT(PPC_RAW_ADDI(dst_reg, dst_reg, > + BPF_OP(code) == BPF_SUB ? IMM_L(-imm) : IMM_L(imm))); > + } else { > + PPC_LI32(b2p[TMP_REG_1], imm); > + if (BPF_OP(code) == BPF_SUB) > + EMIT(PPC_RAW_SUB(dst_reg, dst_reg, b2p[TMP_REG_1])); > + else > EMIT(PPC_RAW_ADD(dst_reg, dst_reg, b2p[TMP_REG_1])); > - } > } > goto bpf_alu32_trunc; > case BPF_ALU | BPF_MUL | BPF_X: /* (u32) dst *= (u32) src */ > -- > 2.33.0 >
next prev parent reply other threads:[~2021-10-01 22:01 UTC|newest] Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-10-01 21:14 [PATCH 0/9] powerpc/bpf: Various fixes Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-01 21:14 ` [PATCH 1/9] powerpc/lib: Add helper to check if offset is within conditional branch range Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-01 21:37 ` Song Liu 2021-10-01 21:37 ` Song Liu 2021-10-04 18:02 ` Naveen N. Rao 2021-10-04 18:02 ` Naveen N. Rao 2021-10-03 7:50 ` Christophe Leroy 2021-10-04 18:03 ` Naveen N. Rao 2021-10-01 21:14 ` [PATCH 2/9] powerpc/bpf: Validate branch ranges Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-01 21:45 ` Song Liu 2021-10-01 21:45 ` Song Liu 2021-10-02 17:29 ` Johan Almbladh 2021-10-02 17:29 ` Johan Almbladh 2021-10-03 7:54 ` Christophe Leroy 2021-10-04 18:11 ` Naveen N. Rao 2021-10-01 21:14 ` [PATCH 3/9] powerpc/bpf: Remove unused SEEN_STACK Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-01 21:47 ` Song Liu 2021-10-01 21:47 ` Song Liu 2021-10-02 17:30 ` Johan Almbladh 2021-10-02 17:30 ` Johan Almbladh 2021-10-03 7:55 ` Christophe Leroy 2021-10-04 18:11 ` Naveen N. Rao 2021-10-05 5:50 ` Christophe Leroy 2021-10-05 20:22 ` Naveen N. Rao 2021-10-01 21:14 ` [PATCH 4/9] powerpc/bpf: Handle large branch ranges with BPF_EXIT Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-01 21:53 ` Song Liu 2021-10-01 21:53 ` Song Liu 2021-10-02 17:31 ` Johan Almbladh 2021-10-02 17:31 ` Johan Almbladh 2021-10-03 7:59 ` Christophe Leroy 2021-10-04 18:24 ` Naveen N. Rao 2021-10-05 5:46 ` Christophe Leroy 2022-01-07 11:46 ` Naveen N. Rao 2021-10-01 21:14 ` [PATCH 5/9] powerpc/bpf: Fix BPF_MOD when imm == 1 Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-01 21:55 ` Song Liu 2021-10-01 21:55 ` Song Liu 2021-10-02 17:32 ` Johan Almbladh 2021-10-02 17:32 ` Johan Almbladh 2021-10-01 21:14 ` [PATCH 6/9] powerpc/bpf: Fix BPF_SUB when imm == 0x80000000 Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-01 22:01 ` Song Liu [this message] 2021-10-01 22:01 ` Song Liu 2021-10-02 17:33 ` Johan Almbladh 2021-10-02 17:33 ` Johan Almbladh 2021-10-03 8:07 ` Christophe Leroy 2021-10-04 18:18 ` Naveen N. Rao 2021-10-05 5:40 ` Christophe Leroy 2021-10-01 21:14 ` [PATCH 7/9] powerpc/bpf: Limit 'ldbrx' to processors compliant with ISA v2.06 Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-02 17:35 ` Johan Almbladh 2021-10-02 17:35 ` Johan Almbladh 2021-10-01 21:14 ` [PATCH 8/9] powerpc/security: Add a helper to query stf_barrier type Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-01 21:14 ` [PATCH 9/9] powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC Naveen N. Rao 2021-10-01 21:14 ` Naveen N. Rao 2021-10-02 17:41 ` [PATCH 0/9] powerpc/bpf: Various fixes Johan Almbladh 2021-10-02 17:41 ` Johan Almbladh 2021-10-04 18:19 ` Naveen N. Rao 2021-10-04 18:19 ` Naveen N. Rao
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CAPhsuW5NraEPybLVcKWzHva4ksTa05msv-2PBdFXPt_J+=xTyw@mail.gmail.com' \ --to=song@kernel.org \ --cc=alexei.starovoitov@gmail.com \ --cc=bpf@vger.kernel.org \ --cc=christophe.leroy@csgroup.eu \ --cc=daniel@iogearbox.net \ --cc=johan.almbladh@anyfinetworks.com \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mpe@ellerman.id.au \ --cc=naveen.n.rao@linux.vnet.ibm.com \ --cc=npiggin@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.