]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
powerpc64/bpf: jit support for unconditional byte swap
authorArtem Savkov <asavkov@redhat.com>
Fri, 17 May 2024 07:56:47 +0000 (09:56 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 11 Jul 2024 05:40:21 +0000 (15:40 +1000)
Add jit support for unconditional byte swap. Tested using BSWAP tests
from test_bpf module.

Signed-off-by: Artem Savkov <asavkov@redhat.com>
Reviewed-by: Hari Bathini <hbathini@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240517075650.248801-3-asavkov@redhat.com
arch/powerpc/net/bpf_jit_comp64.c

index f1d7fcdeb14a72f51fa64a5ec58084063dc0dfd3..7de41e80c61fef7f5fa4bd005d939da273abadc0 100644 (file)
@@ -699,11 +699,12 @@ bpf_alu32_trunc:
                 */
                case BPF_ALU | BPF_END | BPF_FROM_LE:
                case BPF_ALU | BPF_END | BPF_FROM_BE:
+               case BPF_ALU64 | BPF_END | BPF_FROM_LE:
 #ifdef __BIG_ENDIAN__
                        if (BPF_SRC(code) == BPF_FROM_BE)
                                goto emit_clear;
 #else /* !__BIG_ENDIAN__ */
-                       if (BPF_SRC(code) == BPF_FROM_LE)
+                       if (BPF_CLASS(code) == BPF_ALU && BPF_SRC(code) == BPF_FROM_LE)
                                goto emit_clear;
 #endif
                        switch (imm) {