selftests/bpf: Add F_NEEDS_EFFICIENT_UNALIGNED_ACCESS to some tests
authorBjörn Töpel <bjorn@rivosinc.com>
Wed, 5 Jul 2023 11:39:25 +0000 (13:39 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 5 Jul 2023 12:34:23 +0000 (14:34 +0200)
Some verifier tests were missing F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
which made the test fail. Add the flag where needed.

Signed-off-by: Björn Töpel <bjorn@rivosinc.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20230705113926.751791-2-bjorn@kernel.org
tools/testing/selftests/bpf/verifier/atomic_cmpxchg.c
tools/testing/selftests/bpf/verifier/ctx_skb.c
tools/testing/selftests/bpf/verifier/jmp32.c
tools/testing/selftests/bpf/verifier/map_kptr.c
tools/testing/selftests/bpf/verifier/precise.c

index b39665f..319337b 100644 (file)
        .result = REJECT,
        .errstr = "R0 invalid mem access",
        .errstr_unpriv = "R10 partial copy of pointer",
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
index 83cecfb..0b394a7 100644 (file)
        },
        .result = ACCEPT,
        .prog_type = BPF_PROG_TYPE_SK_SKB,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "pkt_end < pkt taken check",
        },
        .result = ACCEPT,
        .prog_type = BPF_PROG_TYPE_SK_SKB,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
index 1a27a62..43776f6 100644 (file)
        .result_unpriv = REJECT,
        .result = ACCEPT,
        .retval = 2,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "jgt32: BPF_K",
        .result_unpriv = REJECT,
        .result = ACCEPT,
        .retval = 2,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "jle32: BPF_K",
        .result_unpriv = REJECT,
        .result = ACCEPT,
        .retval = 2,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "jlt32: BPF_K",
        .result_unpriv = REJECT,
        .result = ACCEPT,
        .retval = 2,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "jsge32: BPF_K",
        .result_unpriv = REJECT,
        .result = ACCEPT,
        .retval = 2,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "jsgt32: BPF_K",
        .result_unpriv = REJECT,
        .result = ACCEPT,
        .retval = 2,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "jsle32: BPF_K",
        .result_unpriv = REJECT,
        .result = ACCEPT,
        .retval = 2,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "jslt32: BPF_K",
        .result_unpriv = REJECT,
        .result = ACCEPT,
        .retval = 2,
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "jgt32: range bound deduction, reg op imm",
index a0cfc06..d25c3e9 100644 (file)
@@ -68,6 +68,7 @@
        .fixup_map_kptr = { 1 },
        .result = REJECT,
        .errstr = "kptr access cannot have variable offset",
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "map_kptr: bpf_kptr_xchg non-const var_off",
        .fixup_map_kptr = { 1 },
        .result = REJECT,
        .errstr = "kptr access misaligned expected=0 off=7",
+       .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
 },
 {
        "map_kptr: reject var_off != 0",
index 99272bb..0d84dd1 100644 (file)
        },
        .fixup_map_ringbuf = { 1 },
        .prog_type = BPF_PROG_TYPE_XDP,
-       .flags = BPF_F_TEST_STATE_FREQ,
+       .flags = BPF_F_TEST_STATE_FREQ | F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        .errstr = "invalid access to memory, mem_size=1 off=42 size=8",
        .result = REJECT,
 },