linux/arch/loongarch
Hengqi Chen add72c418d LoongArch: BPF: Use move_addr() for BPF_PSEUDO_FUNC
commit 52266f1015 upstream.

Vincent reported that running XDP synproxy program on LoongArch results
in the following error:

    JIT doesn't support bpf-to-bpf calls

With dmesg:

    multi-func JIT bug 1391 != 1390

The root cause is that verifier will refill the imm with the correct
addresses of bpf_calls for BPF_PSEUDO_FUNC instructions and then run
the last pass of JIT. So we generate different JIT code for the same
instruction in two passes (one for placeholder and the other for the
real address). Let's use move_addr() instead.

See commit 64f50f6575 ("LoongArch, bpf: Use 4 instructions for
function address in JIT") for a similar fix.

Cc: stable@vger.kernel.org
Fixes: 69c087ba62 ("bpf: Add bpf_for_each_map_elem() helper")
Fixes: bb035ef0cc ("LoongArch: BPF: Support mixing bpf2bpf and tailcalls")
Reported-by: Vincent Li <vincent.mc.li@gmail.com>
Tested-by: Vincent Li <vincent.mc.li@gmail.com>
Closes: https://lore.kernel.org/loongarch/CAK3+h2yfM9FTNiXvEQBkvtuoJrvzmN4c_NZsFXqEk4Cj1tsBNA@mail.gmail.com/T/#u
Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-04-10 14:39:36 +02:00
..
boot LoongArch: Fix GMAC's phy-mode definitions in dts 2024-06-03 15:45:53 +08:00
configs mm: z3fold: deprecate CONFIG_Z3FOLD 2024-09-17 01:07:00 -07:00
crypto move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
include LoongArch: Increase MAX_IO_PICS up to 8 2025-04-10 14:39:36 +02:00
kernel LoongArch: Rework the arch_kgdb_breakpoint() implementation 2025-04-10 14:39:27 +02:00
kvm LoongArch: KVM: Set host with kernel mode when switch to VM mode 2025-03-22 12:54:17 -07:00
lib LoongArch: csum: Fix OoB access in IP checksum code for negative lengths 2025-02-21 14:01:17 +01:00
mm LoongArch: Fix kernel_page_present() for KPRANGE/XKPRANGE 2025-03-22 12:54:17 -07:00
net LoongArch: BPF: Use move_addr() for BPF_PSEUDO_FUNC 2025-04-10 14:39:36 +02:00
pci LoongArch: Fix memleak in pci_acpi_scan_root() 2024-09-24 15:32:20 +08:00
power LoongArch: Fix warnings during S3 suspend 2025-02-08 09:57:59 +01:00
vdso LoongArch: Fix build failure with GCC 15 (-std=gnu23) 2024-12-05 14:02:29 +01:00
Kbuild LoongArch: Allow device trees be built into the kernel 2024-01-17 12:43:00 +08:00
Kconfig LoongArch: Fix help text of CMDLINE_EXTEND in Kconfig 2025-04-10 14:39:27 +02:00
Kconfig.debug LoongArch: Only allow OBJTOOL & ORC unwinder if toolchain supports -mthin-add-sub 2024-06-21 10:18:40 +08:00
Makefile LoongArch: Explicitly specify code model in Makefile 2024-12-05 14:02:45 +01:00