mirror_ubuntu-kernels/arch
Alexei Starovoitov 2fe99eb0cc bpf: Add x86-64 JIT support for PROBE_MEM32 pseudo instructions.
Add support for [LDX | STX | ST], PROBE_MEM32, [B | H | W | DW] instructions.
They are similar to PROBE_MEM instructions with the following differences:
- PROBE_MEM has to check that the address is in the kernel range with
  src_reg + insn->off >= TASK_SIZE_MAX + PAGE_SIZE check
- PROBE_MEM doesn't support store
- PROBE_MEM32 relies on the verifier to clear upper 32-bit in the register
- PROBE_MEM32 adds 64-bit kern_vm_start address (which is stored in %r12 in the prologue)
  Due to bpf_arena constructions such %r12 + %reg + off16 access is guaranteed
  to be within arena virtual range, so no address check at run-time.
- PROBE_MEM32 allows STX and ST. If they fault the store is a nop.
  When LDX faults the destination register is zeroed.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/bpf/20240308010812.89848-4-alexei.starovoitov@gmail.com
2024-03-11 15:37:24 -07:00
..
alpha RTC for 6.8 2024-01-18 17:25:39 -08:00
arc work around gcc bugs with 'asm goto' with outputs 2024-02-09 15:57:48 -08:00
arm mm: Introduce vmap_page_range() to map pages in PCI address space 2024-03-11 16:58:10 +01:00
arm64 arm64, bpf: Use bpf_prog_pack for arm64 bpf trampoline 2024-03-09 08:39:55 -08:00
csky work around gcc bugs with 'asm goto' with outputs 2024-02-09 15:57:48 -08:00
hexagon asm-generic cleanups for 6.8 2024-01-10 18:13:44 -08:00
loongarch mm: Introduce vmap_page_range() to map pages in PCI address space 2024-03-11 16:58:10 +01:00
m68k kbuild: use 4-space indentation when followed by conditionals 2024-02-15 06:05:44 +09:00
microblaze Microblaze patches for 6.8-rc1 2024-01-17 11:27:23 -08:00
mips mm: Introduce vmap_page_range() to map pages in PCI address space 2024-03-11 16:58:10 +01:00
nios2 percpu: 2024-01-18 15:01:28 -08:00
openrisc
parisc parisc architecture fixes for kernel v6.8-rc6: 2024-02-23 10:40:20 -08:00
powerpc mm: Introduce vmap_page_range() to map pages in PCI address space 2024-03-11 16:58:10 +01:00
riscv bpf, riscv64/cfi: Support kCFI + BPF on riscv64 2024-03-06 15:18:16 -08:00
s390 s390 fixes for 6.8-rc6 2024-02-23 09:54:13 -08:00
sh sh updates for v6.8 2024-01-20 09:24:06 -08:00
sparc A list handling fix and 64bit division on 32bit platform fix for the 2024-02-23 08:09:50 +10:00
um work around gcc bugs with 'asm goto' with outputs 2024-02-09 15:57:48 -08:00
x86 bpf: Add x86-64 JIT support for PROBE_MEM32 pseudo instructions. 2024-03-11 15:37:24 -07:00
xtensa work around gcc bugs with 'asm goto' with outputs 2024-02-09 15:57:48 -08:00
.gitignore
Kconfig scs: add CONFIG_MMU dependency for vfree_atomic() 2024-01-25 23:52:21 -08:00