bpf, selftests: Use bpf_probe_read_kernel
authorIlya Leoshkevich <iii@linux.ibm.com>
Tue, 2 Jun 2020 17:44:48 +0000 (19:44 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 2 Jun 2020 19:04:04 +0000 (21:04 +0200)
Since commit 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to
archs where they work") 44 verifier tests fail on s390 due to not having
bpf_probe_read anymore. Fix by using bpf_probe_read_kernel.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20200602174448.2501214-1-iii@linux.ibm.com
tools/testing/selftests/bpf/verifier/const_or.c
tools/testing/selftests/bpf/verifier/helper_access_var_len.c
tools/testing/selftests/bpf/verifier/helper_value_access.c
tools/testing/selftests/bpf/verifier/precise.c

index 84446df..6c214c5 100644 (file)
@@ -6,7 +6,7 @@
        BPF_MOV64_IMM(BPF_REG_2, 34),
        BPF_ALU64_IMM(BPF_OR, BPF_REG_2, 13),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .result = ACCEPT,
@@ -20,7 +20,7 @@
        BPF_MOV64_IMM(BPF_REG_2, 34),
        BPF_ALU64_IMM(BPF_OR, BPF_REG_2, 24),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .errstr = "invalid stack type R1 off=-48 access_size=58",
@@ -36,7 +36,7 @@
        BPF_MOV64_IMM(BPF_REG_4, 13),
        BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_4),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .result = ACCEPT,
@@ -51,7 +51,7 @@
        BPF_MOV64_IMM(BPF_REG_4, 24),
        BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_4),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .errstr = "invalid stack type R1 off=-48 access_size=58",
index 5a605ae..87c4e79 100644 (file)
@@ -19,7 +19,7 @@
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
@@ -36,7 +36,7 @@
        BPF_LDX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, -128),
        BPF_ALU64_IMM(BPF_AND, BPF_REG_2, 64),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .errstr = "invalid indirect read from stack off -64+0 size 64",
@@ -55,7 +55,7 @@
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
@@ -84,7 +84,7 @@
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JSGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_JMP_REG(BPF_JGE, BPF_REG_4, BPF_REG_2, 3),
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, 1),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_LDX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, -128),
        BPF_JMP_IMM(BPF_JGT, BPF_REG_2, 64, 3),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_LDX_MEM(BPF_DW, BPF_REG_2, BPF_REG_1, -128),
        BPF_JMP_IMM(BPF_JSGT, BPF_REG_2, 64, 3),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JSGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JSGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JSGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_MOV64_IMM(BPF_REG_4, 0),
        BPF_JMP_REG(BPF_JSGE, BPF_REG_4, BPF_REG_2, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_MOV64_IMM(BPF_REG_0, 0),
        BPF_EXIT_INSN(),
        },
        BPF_MOV64_IMM(BPF_REG_1, 0),
        BPF_MOV64_IMM(BPF_REG_2, 0),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .errstr = "R1 type=inv expected=fp",
        BPF_MOV64_IMM(BPF_REG_1, 0),
        BPF_MOV64_IMM(BPF_REG_2, 1),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .errstr = "R1 type=inv expected=fp",
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, -8),
        BPF_MOV64_IMM(BPF_REG_2, 0),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .result = ACCEPT,
        BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
        BPF_MOV64_IMM(BPF_REG_2, 0),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_8b = { 3 },
        BPF_MOV64_REG(BPF_REG_1, BPF_REG_10),
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, -8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_8b = { 3 },
        BPF_LDX_MEM(BPF_DW, BPF_REG_2, BPF_REG_0, 0),
        BPF_JMP_IMM(BPF_JGT, BPF_REG_2, 8, 2),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_8b = { 3 },
        BPF_ALU64_IMM(BPF_AND, BPF_REG_2, 63),
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, 1),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_10, -16),
        BPF_EXIT_INSN(),
        },
        BPF_ALU64_IMM(BPF_AND, BPF_REG_2, 32),
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, 32),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_LDX_MEM(BPF_DW, BPF_REG_1, BPF_REG_10, -16),
        BPF_EXIT_INSN(),
        },
index 961f281..1c7882d 100644 (file)
@@ -10,7 +10,7 @@
        BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
        BPF_MOV64_IMM(BPF_REG_2, sizeof(struct test_val)),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
@@ -29,7 +29,7 @@
        BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
        BPF_MOV64_IMM(BPF_REG_2, 8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
@@ -67,7 +67,7 @@
        BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
        BPF_MOV64_IMM(BPF_REG_2, sizeof(struct test_val) + 8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
@@ -87,7 +87,7 @@
        BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
        BPF_MOV64_IMM(BPF_REG_2, -8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_MOV64_IMM(BPF_REG_2,
                      sizeof(struct test_val) - offsetof(struct test_val, foo)),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, offsetof(struct test_val, foo)),
        BPF_MOV64_IMM(BPF_REG_2, 8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_MOV64_IMM(BPF_REG_2,
                      sizeof(struct test_val) - offsetof(struct test_val, foo) + 8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, offsetof(struct test_val, foo)),
        BPF_MOV64_IMM(BPF_REG_2, -8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, offsetof(struct test_val, foo)),
        BPF_MOV64_IMM(BPF_REG_2, -1),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_MOV64_IMM(BPF_REG_2,
                      sizeof(struct test_val) - offsetof(struct test_val, foo)),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_ALU64_REG(BPF_ADD, BPF_REG_1, BPF_REG_3),
        BPF_MOV64_IMM(BPF_REG_2, 8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
                      sizeof(struct test_val) -
                      offsetof(struct test_val, foo) + 8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_ALU64_REG(BPF_ADD, BPF_REG_1, BPF_REG_3),
        BPF_MOV64_IMM(BPF_REG_2, -8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_ALU64_REG(BPF_ADD, BPF_REG_1, BPF_REG_3),
        BPF_MOV64_IMM(BPF_REG_2, -1),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_MOV64_IMM(BPF_REG_2,
                      sizeof(struct test_val) - offsetof(struct test_val, foo)),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_ALU64_REG(BPF_ADD, BPF_REG_1, BPF_REG_3),
        BPF_MOV64_IMM(BPF_REG_2, 8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
        BPF_ALU64_REG(BPF_ADD, BPF_REG_1, BPF_REG_3),
        BPF_MOV64_IMM(BPF_REG_2, 1),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
                      sizeof(struct test_val) -
                      offsetof(struct test_val, foo) + 1),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .fixup_map_hash_48b = { 3 },
index 02151f8..6dc8003 100644 (file)
        BPF_MOV64_REG(BPF_REG_1, BPF_REG_FP),
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, -8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .prog_type = BPF_PROG_TYPE_TRACEPOINT,
        .fixup_map_array_48b = { 1 },
        .result = VERBOSE_ACCEPT,
        .errstr =
-       "26: (85) call bpf_probe_read#4\
+       "26: (85) call bpf_probe_read_kernel#113\
        last_idx 26 first_idx 20\
        regs=4 stack=0 before 25\
        regs=4 stack=0 before 24\
@@ -91,7 +91,7 @@
        BPF_MOV64_REG(BPF_REG_1, BPF_REG_FP),
        BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, -8),
        BPF_MOV64_IMM(BPF_REG_3, 0),
-       BPF_EMIT_CALL(BPF_FUNC_probe_read),
+       BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
        BPF_EXIT_INSN(),
        },
        .prog_type = BPF_PROG_TYPE_TRACEPOINT,
@@ -99,7 +99,7 @@
        .result = VERBOSE_ACCEPT,
        .flags = BPF_F_TEST_STATE_FREQ,
        .errstr =
-       "26: (85) call bpf_probe_read#4\
+       "26: (85) call bpf_probe_read_kernel#113\
        last_idx 26 first_idx 22\
        regs=4 stack=0 before 25\
        regs=4 stack=0 before 24\