diff options
author | Eduard Zingerman <eddyz87@gmail.com> | 2023-03-04 02:12:45 +0100 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2023-03-04 06:41:46 +0100 |
commit | 0d80a619c113d0e216dbffa56b2d5ccc079ee520 (patch) | |
tree | bad7c21446e482a428dd6c6e3c9fd13d36d368f7 /tools/testing/selftests/bpf/verifier/ctx.c | |
parent | bpf: Use separate RCU callbacks for freeing selem (diff) | |
download | linux-0d80a619c113d0e216dbffa56b2d5ccc079ee520.tar.xz linux-0d80a619c113d0e216dbffa56b2d5ccc079ee520.zip |
bpf: allow ctx writes using BPF_ST_MEM instruction
Lift verifier restriction to use BPF_ST_MEM instructions to write to
context data structures. This requires the following changes:
- verifier.c:do_check() for BPF_ST updated to:
- no longer forbid writes to registers of type PTR_TO_CTX;
- track dst_reg type in the env->insn_aux_data[...].ptr_type field
(same way it is done for BPF_STX and BPF_LDX instructions).
- verifier.c:convert_ctx_access() and various callbacks invoked by
it are updated to handled BPF_ST instruction alongside BPF_STX.
Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20230304011247.566040-2-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to '')
-rw-r--r-- | tools/testing/selftests/bpf/verifier/ctx.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/tools/testing/selftests/bpf/verifier/ctx.c b/tools/testing/selftests/bpf/verifier/ctx.c index c8eaf0536c24..2fd31612c0b8 100644 --- a/tools/testing/selftests/bpf/verifier/ctx.c +++ b/tools/testing/selftests/bpf/verifier/ctx.c @@ -1,15 +1,4 @@ { - "context stores via ST", - .insns = { - BPF_MOV64_IMM(BPF_REG_0, 0), - BPF_ST_MEM(BPF_DW, BPF_REG_1, offsetof(struct __sk_buff, mark), 0), - BPF_EXIT_INSN(), - }, - .errstr = "BPF_ST stores into R1 ctx is not allowed", - .result = REJECT, - .prog_type = BPF_PROG_TYPE_SCHED_CLS, -}, -{ "context stores via BPF_ATOMIC", .insns = { BPF_MOV64_IMM(BPF_REG_0, 0), |