summaryrefslogtreecommitdiff
path: root/scripts/Makefile.thinlto
diff options
context:
space:
mode:
authorChen Pei <cp0613@linux.alibaba.com>2026-08-19 20:09:23 +0800
committerKumar Kartikeya Dwivedi <memxor@gmail.com>2026-08-25 15:18:55 +0200
commitb4757714cc63a18c3850dfe99b3f3d1b67b14bf9 (patch)
tree8d5be03129b09ed6c98dbc4f08ac0c69697c3d7e /scripts/Makefile.thinlto
parent5e289c5a4a526e870efac0ca658635c47138593a (diff)
downloadlinux-next-b4757714cc63a18c3850dfe99b3f3d1b67b14bf9.tar.gz
linux-next-b4757714cc63a18c3850dfe99b3f3d1b67b14bf9.zip
bpf, riscv: Add support for signed arena loads
Signed loads from arena memory are currently rejected on riscv64, as bpf_jit_supports_insn() refuses BPF_MEMSX loads when in_arena is set, while x86 and arm64 gained support for them in v6.18. Compilers such as GCC-14 are free to generate signed loads into arena memory, which breaks loading of otherwise valid BPF programs on riscv64. Implement BPF_PROBE_MEM32SX support in the RV64 JIT by reusing the existing arena handling: the arena base (RV_REG_ARENA) is added to the source register and the load is emitted with sign extension (lb/lh/lw). Add BPF_PROBE_MEM32SX to the add_exception_handler() mode gate so that faulting loads get an exception table entry which clears the destination register and resumes execution. Since BPF_PROBE_MEM32SX shares its mode value (0xc0) with BPF_ATOMIC, the gate accepts it only for LDX class instructions so that plain atomic instructions do not register exception table entries. Verified by running the arena LDSX selftests (arena_ldsx_disasm, arena_ldsx_exception, arena_ldsx_s8/s16/s32) and the full arena_atomics test suite on riscv64 QEMU, all passing. Signed-off-by: Chen Pei <cp0613@linux.alibaba.com> Tested-by: Pu Lehui <pulehui@huawei.com> Reviewed-by: Pu Lehui <pulehui@huawei.com> Acked-by: Björn Töpel <bjorn@kernel.org> Link: https://lore.kernel.org/bpf/67422a421852c3eed2269c6def7b5569e727617f.1787140923.git.cp0613@linux.alibaba.com Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions