linux-next/arch/loongarch
Tiezhu Yang e2f7b3d8b4 LoongArch: BPF: Fix unconditional bswap instructions
We can see that "bswap32: Takes an unsigned 32-bit number in either big-
or little-endian format and returns the equivalent number with the same
bit width but opposite endianness" in BPF Instruction Set Specification,
so it should clear the upper 32 bits in "case 32:" for both BPF_ALU and
BPF_ALU64.

[root@linux fedora]# echo 1 > /proc/sys/net/core/bpf_jit_enable
[root@linux fedora]# modprobe test_bpf

Before:
test_bpf: #313 BSWAP 32: 0x0123456789abcdef -> 0xefcdab89 jited:1 ret 1460850314 != -271733879 (0x5712ce8a != 0xefcdab89)FAIL (1 times)
test_bpf: #317 BSWAP 32: 0xfedcba9876543210 -> 0x10325476 jited:1 ret -1460850316 != 271733878 (0xa8ed3174 != 0x10325476)FAIL (1 times)

After:
test_bpf: #313 BSWAP 32: 0x0123456789abcdef -> 0xefcdab89 jited:1 4 PASS
test_bpf: #317 BSWAP 32: 0xfedcba9876543210 -> 0x10325476 jited:1 4 PASS

Fixes: 4ebf9216e7 ("LoongArch: BPF: Support unconditional bswap instructions")
Acked-by: Hengqi Chen <hengqi.chen@gmail.com>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2023-12-09 15:49:16 +08:00
..
boot loongarch: efi: enable generic EFI compressed boot 2022-09-20 09:50:31 +02:00
configs LoongArch: KVM: Enable kvm config and add the makefile 2023-10-02 10:01:29 +08:00
crypto crypto: loongarch/crc32 - remove redundant setting of alignmask to 0 2023-10-27 18:04:24 +08:00
include LoongArch: Preserve syscall nr across execve() 2023-12-09 15:49:15 +08:00
kernel LoongArch: Set unwind stack type to unknown rather than set error flag 2023-12-09 15:49:15 +08:00
kvm LoongArch: KVM: Enable kvm config and add the makefile 2023-10-02 10:01:29 +08:00
lib LoongArch: Add KASAN (Kernel Address Sanitizer) support 2023-09-06 22:54:16 +08:00
mm LoongArch: Mark {dmw,tlb}_virt_to_page() exports as non-GPL 2023-11-21 15:03:25 +08:00
net LoongArch: BPF: Fix unconditional bswap instructions 2023-12-09 15:49:16 +08:00
pci LoongArch: Add FDT booting support from efi system table 2022-12-14 08:41:53 +08:00
power LoongArch: Export some arch-specific pm interfaces 2023-06-29 20:58:44 +08:00
vdso kbuild: unify vdso_install rules 2023-10-28 21:09:02 +09:00
Kbuild LoongArch: KVM: Enable kvm config and add the makefile 2023-10-02 10:01:29 +08:00
Kconfig LoongArch changes for v6.7 2023-11-12 10:58:08 -08:00
Kconfig.debug LoongArch: Add prologue unwinder support 2022-08-12 13:10:11 +08:00
Makefile LoongArch: Apply dynamic relocations for LLD 2023-12-09 15:49:15 +08:00