lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aJR/+4cl8NzhIsQU@linux.ibm.com>
Date: Thu, 7 Aug 2025 15:59:15 +0530
From: Saket Kumar Bhaskar <skb99@...ux.ibm.com>
To: Christophe Leroy <christophe.leroy@...roup.eu>
Cc: Venkat Rao Bagalkote <venkat88@...ux.ibm.com>, bpf@...r.kernel.org,
        linuxppc-dev@...ts.ozlabs.org, linux-kselftest@...r.kernel.org,
        linux-kernel@...r.kernel.org, hbathini@...ux.ibm.com,
        sachinpb@...ux.ibm.com, andrii@...nel.org, eddyz87@...il.com,
        mykolal@...com, ast@...nel.org, daniel@...earbox.net,
        martin.lau@...ux.dev, song@...nel.org, yonghong.song@...ux.dev,
        john.fastabend@...il.com, kpsingh@...nel.org, sdf@...ichev.me,
        haoluo@...gle.com, jolsa@...nel.org, naveen@...nel.org,
        maddy@...ux.ibm.com, mpe@...erman.id.au, npiggin@...il.com,
        memxor@...il.com, iii@...ux.ibm.com, shuah@...nel.org
Subject: Re: [bpf-next 1/6] bpf,powerpc: Introduce
 bpf_jit_emit_probe_mem_store() to emit store instructions

On Wed, Aug 06, 2025 at 08:59:59AM +0200, Christophe Leroy wrote:
> 
> 
> Le 05/08/2025 à 13:59, Venkat Rao Bagalkote a écrit :
> > 
> > On 05/08/25 1:04 pm, Christophe Leroy wrote:
> > > 
> > > 
> > > Le 05/08/2025 à 08:27, Saket Kumar Bhaskar a écrit :
> > > > bpf_jit_emit_probe_mem_store() is introduced to emit instructions for
> > > > storing memory values depending on the size (byte, halfword,
> > > > word, doubleword).
> > > 
> > > Build break with this patch
> > > 
> > >   CC      arch/powerpc/net/bpf_jit_comp64.o
> > > arch/powerpc/net/bpf_jit_comp64.c:395:12: error:
> > > 'bpf_jit_emit_probe_mem_store' defined but not used [-Werror=unused-
> > > function]
> > >  static int bpf_jit_emit_probe_mem_store(struct codegen_context
> > > *ctx, u32 src_reg, s16 off,
> > >             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > cc1: all warnings being treated as errors
> > > make[4]: *** [scripts/Makefile.build:287: arch/powerpc/net/
> > > bpf_jit_comp64.o] Error 1
> > > 
> > I tried this on top of bpf-next, and for me build passed.
> 
> Build of _this_ patch (alone) passed ?
> 
> This patch defines a static function but doesn't use it, so the build must
> breaks because of that, unless you have set CONFIG_PPC_DISABLE_WERROR.
> 
> Following patch starts using this function so then the build doesn't break
> anymore. But until next patch is applied the build doesn't work. Both
> patches have to be squashed together in order to not break bisectability of
> the kernel.
> 
> Christophe
> 
Got it Chris, will squash both the patches together in v2.
> > 
> > Note: I applied https://eur01.safelinks.protection.outlook.com/?
> > url=https%3A%2F%2Flore.kernel.org%2Fbpf%2F20250717202935.29018-2- puranjay%40kernel.org%2F&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C0468473019834e07ef2b08ddd4179b9c%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638899920058624267%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=iZLg9NUWxtH3vO1STI8wRYLzwvhohd2KKTAGYDe3WnM%3D&reserved=0
> > before applying current patch.
> > 
> > gcc version 14.2.1 20250110
> > 
> > uname -r: 6.16.0-gf2844c7fdb07
> > 
> > bpf-next repo: https://eur01.safelinks.protection.outlook.com/? url=https%3A%2F%2Fkernel.googlesource.com%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fbpf%2Fbpf-next&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C0468473019834e07ef2b08ddd4179b9c%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638899920058644309%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=OrMauttrzPbaFYhzKdkH5l%2FltISc95MwitnUC7YLhJQ%3D&reserved=0
> > 
> > HEAD:
> > 
> > commit f3af62b6cee8af9f07012051874af2d2a451f0e5 (origin/master, origin/
> > HEAD)
> > Author: Tao Chen <chen.dylane@...ux.dev>
> > Date:   Wed Jul 23 22:44:42 2025 +0800
> > 
> >      bpftool: Add bash completion for token argument
> > 
> > 
> > Build Success logs:
> > 
> >    TEST-OBJ [test_progs-cpuv4] xdp_vlan.test.o
> >    TEST-OBJ [test_progs-cpuv4] xdpwall.test.o
> >    TEST-OBJ [test_progs-cpuv4] xfrm_info.test.o
> >    BINARY   bench
> >    BINARY   test_maps
> >    BINARY   test_progs
> >    BINARY   test_progs-no_alu32
> >    BINARY   test_progs-cpuv4
> > 
> > 
> > Regards,
> > 
> > Venkat.
> > 
> > > 
> > > > 
> > > > Signed-off-by: Saket Kumar Bhaskar <skb99@...ux.ibm.com>
> > > > ---
> > > >   arch/powerpc/net/bpf_jit_comp64.c | 30 ++++++++++++++++++++++++++++++
> > > >   1 file changed, 30 insertions(+)
> > > > 
> > > > diff --git a/arch/powerpc/net/bpf_jit_comp64.c
> > > > b/arch/powerpc/net/ bpf_jit_comp64.c
> > > > index 025524378443..489de21fe3d6 100644
> > > > --- a/arch/powerpc/net/bpf_jit_comp64.c
> > > > +++ b/arch/powerpc/net/bpf_jit_comp64.c
> > > > @@ -409,6 +409,36 @@ asm (
> > > >   "        blr                ;"
> > > >   );
> > > >   +static int bpf_jit_emit_probe_mem_store(struct
> > > > codegen_context *ctx, u32 src_reg, s16 off,
> > > > +                    u32 code, u32 *image)
> > > > +{
> > > > +    u32 tmp1_reg = bpf_to_ppc(TMP_REG_1);
> > > > +    u32 tmp2_reg = bpf_to_ppc(TMP_REG_2);
> > > > +
> > > > +    switch (BPF_SIZE(code)) {
> > > > +    case BPF_B:
> > > > +        EMIT(PPC_RAW_STB(src_reg, tmp1_reg, off));
> > > > +        break;
> > > > +    case BPF_H:
> > > > +        EMIT(PPC_RAW_STH(src_reg, tmp1_reg, off));
> > > > +        break;
> > > > +    case BPF_W:
> > > > +        EMIT(PPC_RAW_STW(src_reg, tmp1_reg, off));
> > > > +        break;
> > > > +    case BPF_DW:
> > > > +        if (off % 4) {
> > > > +            EMIT(PPC_RAW_LI(tmp2_reg, off));
> > > > +            EMIT(PPC_RAW_STDX(src_reg, tmp1_reg, tmp2_reg));
> > > > +        } else {
> > > > +            EMIT(PPC_RAW_STD(src_reg, tmp1_reg, off));
> > > > +        }
> > > > +        break;
> > > > +    default:
> > > > +        return -EINVAL;
> > > > +    }
> > > > +    return 0;
> > > > +}
> > > > +
> > > >   static int emit_atomic_ld_st(const struct bpf_insn insn,
> > > > struct codegen_context *ctx, u32 *image)
> > > >   {
> > > >       u32 code = insn.code;
> > > 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ