Files
linux/include/linux
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
..
2023-10-24 13:08:14 -07:00
2024-01-02 17:54:05 +01:00
2023-12-20 19:26:32 -05:00
2023-10-11 08:46:01 -07:00
2024-02-01 13:06:40 +01:00
2024-03-11 15:37:23 -07:00
2023-12-02 22:24:36 +00:00
2023-12-15 16:25:55 -08:00
2023-10-04 10:41:56 -07:00
2023-12-20 14:48:13 -08:00
2024-02-09 23:31:16 -05:00
2023-12-20 07:39:52 -05:00
2023-12-12 14:24:14 +01:00
2024-01-08 09:36:55 +09:00
2024-01-19 11:59:11 -08:00
2024-01-02 11:25:28 +01:00
2024-01-18 21:10:43 +01:00
2024-02-28 19:36:39 -08:00
2024-02-23 16:45:05 +01:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-10-11 10:11:54 -07:00
2023-10-18 14:43:21 -07:00
2023-10-04 10:41:57 -07:00
2023-12-20 19:26:30 -05:00
2023-11-28 15:48:39 +01:00
2023-10-16 12:44:06 -04:00
2023-10-16 12:44:06 -04:00
2023-10-18 10:01:33 +02:00
2023-11-15 22:41:27 -05:00
2024-03-01 08:44:54 +00:00
2024-01-04 10:47:56 -05:00
2023-12-20 19:26:30 -05:00
2024-01-15 12:10:41 -06:00
2024-01-15 12:10:41 -06:00
2023-11-15 10:15:40 +01:00
2024-02-17 18:45:06 +00:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2024-01-09 15:00:09 +01:00
2023-12-20 19:26:30 -05:00
2023-12-27 11:49:56 -05:00
2023-10-06 11:01:23 +02:00
2023-12-20 19:26:32 -05:00
2023-12-27 11:49:56 -05:00
2023-12-20 19:26:31 -05:00
2023-11-15 10:15:33 +01:00
2023-12-20 19:26:32 -05:00
2024-01-24 16:21:01 -08:00
2023-12-20 19:26:32 -05:00
2023-12-20 19:26:32 -05:00
2024-02-15 12:17:28 -05:00
2023-12-08 12:02:38 +01:00
2023-12-20 19:26:31 -05:00
2024-01-21 18:09:30 +00:00
2023-10-15 13:19:42 +01:00
2024-01-19 11:59:11 -08:00
2023-10-18 14:43:21 -07:00
2023-12-28 05:02:42 -08:00
2023-11-17 15:48:03 +01:00
2023-12-20 19:26:31 -05:00
2023-12-20 19:26:31 -05:00
2023-12-08 12:02:37 +01:00
2023-12-20 19:26:30 -05:00
2023-12-29 11:58:24 -08:00
2024-02-09 12:07:48 +00:00