Commit 908142e6 authored by Prashant Bhole's avatar Prashant Bhole Committed by Alexei Starovoitov

selftests/bpf: test_verifier, change names of fixup maps

Currently fixup map are named like fixup_map1, fixup_map2, and so on.
As suggested by Alexei let's change change map names such that we can
identify map type by looking at the name.

This patch is basically a find and replace change:
fixup_map1  ->  fixup_map_hash_8b
fixup_map2  ->  fixup_map_hash_48b
fixup_map3  ->  fixup_map_hash_16b
fixup_map4  ->  fixup_map_array_48b
Suggested-by: default avatarAlexei Starovoitov <ast@kernel.org>
Signed-off-by: default avatarPrashant Bhole <bhole_prashant_q7@lab.ntt.co.jp>
Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarSong Liu <songliubraving@fb.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 8ec92dc2
...@@ -61,10 +61,10 @@ static bool unpriv_disabled = false; ...@@ -61,10 +61,10 @@ static bool unpriv_disabled = false;
struct bpf_test { struct bpf_test {
const char *descr; const char *descr;
struct bpf_insn insns[MAX_INSNS]; struct bpf_insn insns[MAX_INSNS];
int fixup_map1[MAX_FIXUPS]; int fixup_map_hash_8b[MAX_FIXUPS];
int fixup_map2[MAX_FIXUPS]; int fixup_map_hash_48b[MAX_FIXUPS];
int fixup_map3[MAX_FIXUPS]; int fixup_map_hash_16b[MAX_FIXUPS];
int fixup_map4[MAX_FIXUPS]; int fixup_map_array_48b[MAX_FIXUPS];
int fixup_prog1[MAX_FIXUPS]; int fixup_prog1[MAX_FIXUPS];
int fixup_prog2[MAX_FIXUPS]; int fixup_prog2[MAX_FIXUPS];
int fixup_map_in_map[MAX_FIXUPS]; int fixup_map_in_map[MAX_FIXUPS];
...@@ -876,7 +876,7 @@ static struct bpf_test tests[] = { ...@@ -876,7 +876,7 @@ static struct bpf_test tests[] = {
BPF_FUNC_map_lookup_elem), BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 2 }, .fixup_map_hash_8b = { 2 },
.errstr = "invalid indirect read from stack", .errstr = "invalid indirect read from stack",
.result = REJECT, .result = REJECT,
}, },
...@@ -1110,7 +1110,7 @@ static struct bpf_test tests[] = { ...@@ -1110,7 +1110,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 0), BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "R0 invalid mem access 'map_value_or_null'", .errstr = "R0 invalid mem access 'map_value_or_null'",
.result = REJECT, .result = REJECT,
}, },
...@@ -1127,7 +1127,7 @@ static struct bpf_test tests[] = { ...@@ -1127,7 +1127,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_0, 4, 0), BPF_ST_MEM(BPF_DW, BPF_REG_0, 4, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "misaligned value access", .errstr = "misaligned value access",
.result = REJECT, .result = REJECT,
.flags = F_LOAD_WITH_STRICT_ALIGNMENT, .flags = F_LOAD_WITH_STRICT_ALIGNMENT,
...@@ -1147,7 +1147,7 @@ static struct bpf_test tests[] = { ...@@ -1147,7 +1147,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 1), BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 1),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "R0 invalid mem access", .errstr = "R0 invalid mem access",
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result = REJECT, .result = REJECT,
...@@ -1237,7 +1237,7 @@ static struct bpf_test tests[] = { ...@@ -1237,7 +1237,7 @@ static struct bpf_test tests[] = {
BPF_FUNC_map_delete_elem), BPF_FUNC_map_delete_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 24 }, .fixup_map_hash_8b = { 24 },
.errstr_unpriv = "R1 pointer comparison", .errstr_unpriv = "R1 pointer comparison",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -1391,7 +1391,7 @@ static struct bpf_test tests[] = { ...@@ -1391,7 +1391,7 @@ static struct bpf_test tests[] = {
offsetof(struct __sk_buff, pkt_type)), offsetof(struct __sk_buff, pkt_type)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.errstr = "different pointers", .errstr = "different pointers",
.errstr_unpriv = "R1 pointer comparison", .errstr_unpriv = "R1 pointer comparison",
.result = REJECT, .result = REJECT,
...@@ -1414,7 +1414,7 @@ static struct bpf_test tests[] = { ...@@ -1414,7 +1414,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_REG(BPF_REG_1, BPF_REG_0), BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
BPF_JMP_IMM(BPF_JA, 0, 0, -12), BPF_JMP_IMM(BPF_JA, 0, 0, -12),
}, },
.fixup_map1 = { 6 }, .fixup_map_hash_8b = { 6 },
.errstr = "different pointers", .errstr = "different pointers",
.errstr_unpriv = "R1 pointer comparison", .errstr_unpriv = "R1 pointer comparison",
.result = REJECT, .result = REJECT,
...@@ -1438,7 +1438,7 @@ static struct bpf_test tests[] = { ...@@ -1438,7 +1438,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_REG(BPF_REG_1, BPF_REG_0), BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
BPF_JMP_IMM(BPF_JA, 0, 0, -13), BPF_JMP_IMM(BPF_JA, 0, 0, -13),
}, },
.fixup_map1 = { 7 }, .fixup_map_hash_8b = { 7 },
.errstr = "different pointers", .errstr = "different pointers",
.errstr_unpriv = "R1 pointer comparison", .errstr_unpriv = "R1 pointer comparison",
.result = REJECT, .result = REJECT,
...@@ -2575,7 +2575,7 @@ static struct bpf_test tests[] = { ...@@ -2575,7 +2575,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr_unpriv = "R4 leaks addr", .errstr_unpriv = "R4 leaks addr",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -2592,7 +2592,7 @@ static struct bpf_test tests[] = { ...@@ -2592,7 +2592,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "invalid indirect read from stack off -8+0 size 8", .errstr = "invalid indirect read from stack off -8+0 size 8",
.result = REJECT, .result = REJECT,
}, },
...@@ -2894,7 +2894,7 @@ static struct bpf_test tests[] = { ...@@ -2894,7 +2894,7 @@ static struct bpf_test tests[] = {
BPF_STX_MEM(BPF_DW, BPF_REG_0, BPF_REG_0, 0), BPF_STX_MEM(BPF_DW, BPF_REG_0, BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -2934,7 +2934,7 @@ static struct bpf_test tests[] = { ...@@ -2934,7 +2934,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 1 }, .fixup_map_hash_8b = { 1 },
.errstr_unpriv = "R1 pointer comparison", .errstr_unpriv = "R1 pointer comparison",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -4073,7 +4073,7 @@ static struct bpf_test tests[] = { ...@@ -4073,7 +4073,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 5 }, .fixup_map_hash_8b = { 5 },
.result_unpriv = ACCEPT, .result_unpriv = ACCEPT,
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
...@@ -4089,7 +4089,7 @@ static struct bpf_test tests[] = { ...@@ -4089,7 +4089,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 1 }, .fixup_map_hash_8b = { 1 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to packet", .errstr = "invalid access to packet",
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
...@@ -4117,7 +4117,7 @@ static struct bpf_test tests[] = { ...@@ -4117,7 +4117,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 11 }, .fixup_map_hash_8b = { 11 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
}, },
...@@ -4139,7 +4139,7 @@ static struct bpf_test tests[] = { ...@@ -4139,7 +4139,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 7 }, .fixup_map_hash_8b = { 7 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to packet", .errstr = "invalid access to packet",
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
...@@ -4161,7 +4161,7 @@ static struct bpf_test tests[] = { ...@@ -4161,7 +4161,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 6 }, .fixup_map_hash_8b = { 6 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to packet", .errstr = "invalid access to packet",
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
...@@ -4184,7 +4184,7 @@ static struct bpf_test tests[] = { ...@@ -4184,7 +4184,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 5 }, .fixup_map_hash_8b = { 5 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
}, },
...@@ -4199,7 +4199,7 @@ static struct bpf_test tests[] = { ...@@ -4199,7 +4199,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 1 }, .fixup_map_hash_8b = { 1 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to packet", .errstr = "invalid access to packet",
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
...@@ -4227,7 +4227,7 @@ static struct bpf_test tests[] = { ...@@ -4227,7 +4227,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 11 }, .fixup_map_hash_8b = { 11 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
}, },
...@@ -4249,7 +4249,7 @@ static struct bpf_test tests[] = { ...@@ -4249,7 +4249,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 7 }, .fixup_map_hash_8b = { 7 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to packet", .errstr = "invalid access to packet",
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
...@@ -4271,7 +4271,7 @@ static struct bpf_test tests[] = { ...@@ -4271,7 +4271,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 6 }, .fixup_map_hash_8b = { 6 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to packet", .errstr = "invalid access to packet",
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
...@@ -4555,7 +4555,7 @@ static struct bpf_test tests[] = { ...@@ -4555,7 +4555,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -4577,7 +4577,7 @@ static struct bpf_test tests[] = { ...@@ -4577,7 +4577,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -4601,7 +4601,7 @@ static struct bpf_test tests[] = { ...@@ -4601,7 +4601,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -4629,7 +4629,7 @@ static struct bpf_test tests[] = { ...@@ -4629,7 +4629,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -4649,7 +4649,7 @@ static struct bpf_test tests[] = { ...@@ -4649,7 +4649,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "invalid access to map value, value_size=48 off=48 size=8", .errstr = "invalid access to map value, value_size=48 off=48 size=8",
.result = REJECT, .result = REJECT,
}, },
...@@ -4670,7 +4670,7 @@ static struct bpf_test tests[] = { ...@@ -4670,7 +4670,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R0 min value is outside of the array range", .errstr = "R0 min value is outside of the array range",
.result = REJECT, .result = REJECT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS, .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
...@@ -4692,7 +4692,7 @@ static struct bpf_test tests[] = { ...@@ -4692,7 +4692,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R0 unbounded memory access, make sure to bounds check any array access into a map", .errstr = "R0 unbounded memory access, make sure to bounds check any array access into a map",
.result = REJECT, .result = REJECT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS, .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
...@@ -4717,7 +4717,7 @@ static struct bpf_test tests[] = { ...@@ -4717,7 +4717,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.errstr = "R0 unbounded memory access", .errstr = "R0 unbounded memory access",
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -4744,7 +4744,7 @@ static struct bpf_test tests[] = { ...@@ -4744,7 +4744,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.errstr = "invalid access to map value, value_size=48 off=44 size=8", .errstr = "invalid access to map value, value_size=48 off=44 size=8",
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -4774,7 +4774,7 @@ static struct bpf_test tests[] = { ...@@ -4774,7 +4774,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3, 11 }, .fixup_map_hash_48b = { 3, 11 },
.errstr = "R0 pointer += pointer", .errstr = "R0 pointer += pointer",
.result = REJECT, .result = REJECT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS, .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
...@@ -4807,7 +4807,7 @@ static struct bpf_test tests[] = { ...@@ -4807,7 +4807,7 @@ static struct bpf_test tests[] = {
BPF_ALU64_IMM(BPF_AND, BPF_REG_0, 1), BPF_ALU64_IMM(BPF_AND, BPF_REG_0, 1),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 1 }, .fixup_map_hash_8b = { 1 },
.result = REJECT, .result = REJECT,
.errstr = "cannot pass map_type 1 into func bpf_get_local_storage", .errstr = "cannot pass map_type 1 into func bpf_get_local_storage",
.prog_type = BPF_PROG_TYPE_CGROUP_SKB, .prog_type = BPF_PROG_TYPE_CGROUP_SKB,
...@@ -4922,7 +4922,7 @@ static struct bpf_test tests[] = { ...@@ -4922,7 +4922,7 @@ static struct bpf_test tests[] = {
BPF_ALU64_IMM(BPF_AND, BPF_REG_0, 1), BPF_ALU64_IMM(BPF_AND, BPF_REG_0, 1),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 1 }, .fixup_map_hash_8b = { 1 },
.result = REJECT, .result = REJECT,
.errstr = "cannot pass map_type 1 into func bpf_get_local_storage", .errstr = "cannot pass map_type 1 into func bpf_get_local_storage",
.prog_type = BPF_PROG_TYPE_CGROUP_SKB, .prog_type = BPF_PROG_TYPE_CGROUP_SKB,
...@@ -5024,7 +5024,7 @@ static struct bpf_test tests[] = { ...@@ -5024,7 +5024,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0), BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS .prog_type = BPF_PROG_TYPE_SCHED_CLS
}, },
...@@ -5045,7 +5045,7 @@ static struct bpf_test tests[] = { ...@@ -5045,7 +5045,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0), BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.errstr = "R4 pointer arithmetic on map_value_or_null", .errstr = "R4 pointer arithmetic on map_value_or_null",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS .prog_type = BPF_PROG_TYPE_SCHED_CLS
...@@ -5066,7 +5066,7 @@ static struct bpf_test tests[] = { ...@@ -5066,7 +5066,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0), BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.errstr = "R4 pointer arithmetic on map_value_or_null", .errstr = "R4 pointer arithmetic on map_value_or_null",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS .prog_type = BPF_PROG_TYPE_SCHED_CLS
...@@ -5087,7 +5087,7 @@ static struct bpf_test tests[] = { ...@@ -5087,7 +5087,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0), BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.errstr = "R4 pointer arithmetic on map_value_or_null", .errstr = "R4 pointer arithmetic on map_value_or_null",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS .prog_type = BPF_PROG_TYPE_SCHED_CLS
...@@ -5113,7 +5113,7 @@ static struct bpf_test tests[] = { ...@@ -5113,7 +5113,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0), BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.result = REJECT, .result = REJECT,
.errstr = "R4 !read_ok", .errstr = "R4 !read_ok",
.prog_type = BPF_PROG_TYPE_SCHED_CLS .prog_type = BPF_PROG_TYPE_SCHED_CLS
...@@ -5141,7 +5141,7 @@ static struct bpf_test tests[] = { ...@@ -5141,7 +5141,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0), BPF_ST_MEM(BPF_DW, BPF_REG_4, 0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS .prog_type = BPF_PROG_TYPE_SCHED_CLS
}, },
...@@ -5162,7 +5162,7 @@ static struct bpf_test tests[] = { ...@@ -5162,7 +5162,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, offsetof(struct test_val, foo)), BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R0 unbounded memory access", .errstr = "R0 unbounded memory access",
.result = REJECT, .result = REJECT,
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
...@@ -5412,7 +5412,7 @@ static struct bpf_test tests[] = { ...@@ -5412,7 +5412,7 @@ static struct bpf_test tests[] = {
offsetof(struct __sk_buff, cb[0])), offsetof(struct __sk_buff, cb[0])),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 2 }, .fixup_map_hash_8b = { 2 },
.errstr_unpriv = "R2 leaks addr into mem", .errstr_unpriv = "R2 leaks addr into mem",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = REJECT, .result = REJECT,
...@@ -5442,7 +5442,7 @@ static struct bpf_test tests[] = { ...@@ -5442,7 +5442,7 @@ static struct bpf_test tests[] = {
offsetof(struct __sk_buff, cb[0])), offsetof(struct __sk_buff, cb[0])),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 1 }, .fixup_map_hash_8b = { 1 },
.errstr_unpriv = "R2 leaks addr into ctx", .errstr_unpriv = "R2 leaks addr into ctx",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -5464,7 +5464,7 @@ static struct bpf_test tests[] = { ...@@ -5464,7 +5464,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.errstr_unpriv = "R6 leaks addr into mem", .errstr_unpriv = "R6 leaks addr into mem",
.result_unpriv = REJECT, .result_unpriv = REJECT,
.result = ACCEPT, .result = ACCEPT,
...@@ -5484,7 +5484,7 @@ static struct bpf_test tests[] = { ...@@ -5484,7 +5484,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -5503,7 +5503,7 @@ static struct bpf_test tests[] = { ...@@ -5503,7 +5503,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -5521,7 +5521,7 @@ static struct bpf_test tests[] = { ...@@ -5521,7 +5521,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_trace_printk), BPF_EMIT_CALL(BPF_FUNC_trace_printk),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "invalid access to map value, value_size=48 off=0 size=0", .errstr = "invalid access to map value, value_size=48 off=0 size=0",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5541,7 +5541,7 @@ static struct bpf_test tests[] = { ...@@ -5541,7 +5541,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "invalid access to map value, value_size=48 off=0 size=56", .errstr = "invalid access to map value, value_size=48 off=0 size=56",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5561,7 +5561,7 @@ static struct bpf_test tests[] = { ...@@ -5561,7 +5561,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R2 min value is negative", .errstr = "R2 min value is negative",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5585,7 +5585,7 @@ static struct bpf_test tests[] = { ...@@ -5585,7 +5585,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -5606,7 +5606,7 @@ static struct bpf_test tests[] = { ...@@ -5606,7 +5606,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -5626,7 +5626,7 @@ static struct bpf_test tests[] = { ...@@ -5626,7 +5626,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_trace_printk), BPF_EMIT_CALL(BPF_FUNC_trace_printk),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "invalid access to map value, value_size=48 off=4 size=0", .errstr = "invalid access to map value, value_size=48 off=4 size=0",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5650,7 +5650,7 @@ static struct bpf_test tests[] = { ...@@ -5650,7 +5650,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "invalid access to map value, value_size=48 off=4 size=52", .errstr = "invalid access to map value, value_size=48 off=4 size=52",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5672,7 +5672,7 @@ static struct bpf_test tests[] = { ...@@ -5672,7 +5672,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R2 min value is negative", .errstr = "R2 min value is negative",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5694,7 +5694,7 @@ static struct bpf_test tests[] = { ...@@ -5694,7 +5694,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R2 min value is negative", .errstr = "R2 min value is negative",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5719,7 +5719,7 @@ static struct bpf_test tests[] = { ...@@ -5719,7 +5719,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -5741,7 +5741,7 @@ static struct bpf_test tests[] = { ...@@ -5741,7 +5741,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -5761,7 +5761,7 @@ static struct bpf_test tests[] = { ...@@ -5761,7 +5761,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_trace_printk), BPF_EMIT_CALL(BPF_FUNC_trace_printk),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R1 min value is outside of the array range", .errstr = "R1 min value is outside of the array range",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5786,7 +5786,7 @@ static struct bpf_test tests[] = { ...@@ -5786,7 +5786,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "invalid access to map value, value_size=48 off=4 size=52", .errstr = "invalid access to map value, value_size=48 off=4 size=52",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5809,7 +5809,7 @@ static struct bpf_test tests[] = { ...@@ -5809,7 +5809,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R2 min value is negative", .errstr = "R2 min value is negative",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5832,7 +5832,7 @@ static struct bpf_test tests[] = { ...@@ -5832,7 +5832,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R2 min value is negative", .errstr = "R2 min value is negative",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5858,7 +5858,7 @@ static struct bpf_test tests[] = { ...@@ -5858,7 +5858,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -5881,7 +5881,7 @@ static struct bpf_test tests[] = { ...@@ -5881,7 +5881,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -5903,7 +5903,7 @@ static struct bpf_test tests[] = { ...@@ -5903,7 +5903,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_trace_printk), BPF_EMIT_CALL(BPF_FUNC_trace_printk),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R1 min value is outside of the array range", .errstr = "R1 min value is outside of the array range",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5925,7 +5925,7 @@ static struct bpf_test tests[] = { ...@@ -5925,7 +5925,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R1 unbounded memory access", .errstr = "R1 unbounded memory access",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5951,7 +5951,7 @@ static struct bpf_test tests[] = { ...@@ -5951,7 +5951,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "invalid access to map value, value_size=48 off=4 size=45", .errstr = "invalid access to map value, value_size=48 off=4 size=45",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -5975,7 +5975,7 @@ static struct bpf_test tests[] = { ...@@ -5975,7 +5975,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -5998,7 +5998,7 @@ static struct bpf_test tests[] = { ...@@ -5998,7 +5998,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = REJECT, .result = REJECT,
.errstr = "R1 unbounded memory access", .errstr = "R1 unbounded memory access",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6022,7 +6022,7 @@ static struct bpf_test tests[] = { ...@@ -6022,7 +6022,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6045,7 +6045,7 @@ static struct bpf_test tests[] = { ...@@ -6045,7 +6045,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = REJECT, .result = REJECT,
.errstr = "R1 unbounded memory access", .errstr = "R1 unbounded memory access",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6070,7 +6070,7 @@ static struct bpf_test tests[] = { ...@@ -6070,7 +6070,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6094,7 +6094,7 @@ static struct bpf_test tests[] = { ...@@ -6094,7 +6094,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6118,7 +6118,7 @@ static struct bpf_test tests[] = { ...@@ -6118,7 +6118,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = REJECT, .result = REJECT,
.errstr = "R1 min value is negative", .errstr = "R1 min value is negative",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6143,7 +6143,7 @@ static struct bpf_test tests[] = { ...@@ -6143,7 +6143,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6167,7 +6167,7 @@ static struct bpf_test tests[] = { ...@@ -6167,7 +6167,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6191,7 +6191,7 @@ static struct bpf_test tests[] = { ...@@ -6191,7 +6191,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = REJECT, .result = REJECT,
.errstr = "R1 min value is negative", .errstr = "R1 min value is negative",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6210,7 +6210,7 @@ static struct bpf_test tests[] = { ...@@ -6210,7 +6210,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 8 }, .fixup_map_hash_16b = { 3, 8 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6230,7 +6230,7 @@ static struct bpf_test tests[] = { ...@@ -6230,7 +6230,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_update_elem), BPF_EMIT_CALL(BPF_FUNC_map_update_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 10 }, .fixup_map_hash_16b = { 3, 10 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6250,8 +6250,8 @@ static struct bpf_test tests[] = { ...@@ -6250,8 +6250,8 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_update_elem), BPF_EMIT_CALL(BPF_FUNC_map_update_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.fixup_map3 = { 10 }, .fixup_map_hash_16b = { 10 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to map value, value_size=8 off=0 size=16", .errstr = "invalid access to map value, value_size=8 off=0 size=16",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6272,7 +6272,7 @@ static struct bpf_test tests[] = { ...@@ -6272,7 +6272,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 9 }, .fixup_map_hash_16b = { 3, 9 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6292,7 +6292,7 @@ static struct bpf_test tests[] = { ...@@ -6292,7 +6292,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 9 }, .fixup_map_hash_16b = { 3, 9 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to map value, value_size=16 off=12 size=8", .errstr = "invalid access to map value, value_size=16 off=12 size=8",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6312,7 +6312,7 @@ static struct bpf_test tests[] = { ...@@ -6312,7 +6312,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 9 }, .fixup_map_hash_16b = { 3, 9 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to map value, value_size=16 off=-4 size=8", .errstr = "invalid access to map value, value_size=16 off=-4 size=8",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6334,7 +6334,7 @@ static struct bpf_test tests[] = { ...@@ -6334,7 +6334,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 10 }, .fixup_map_hash_16b = { 3, 10 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6355,7 +6355,7 @@ static struct bpf_test tests[] = { ...@@ -6355,7 +6355,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 10 }, .fixup_map_hash_16b = { 3, 10 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to map value, value_size=16 off=12 size=8", .errstr = "invalid access to map value, value_size=16 off=12 size=8",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6376,7 +6376,7 @@ static struct bpf_test tests[] = { ...@@ -6376,7 +6376,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 10 }, .fixup_map_hash_16b = { 3, 10 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to map value, value_size=16 off=-4 size=8", .errstr = "invalid access to map value, value_size=16 off=-4 size=8",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6399,7 +6399,7 @@ static struct bpf_test tests[] = { ...@@ -6399,7 +6399,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 11 }, .fixup_map_hash_16b = { 3, 11 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6419,7 +6419,7 @@ static struct bpf_test tests[] = { ...@@ -6419,7 +6419,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 10 }, .fixup_map_hash_16b = { 3, 10 },
.result = REJECT, .result = REJECT,
.errstr = "R2 unbounded memory access, make sure to bounds check any array access into a map", .errstr = "R2 unbounded memory access, make sure to bounds check any array access into a map",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6442,7 +6442,7 @@ static struct bpf_test tests[] = { ...@@ -6442,7 +6442,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map3 = { 3, 11 }, .fixup_map_hash_16b = { 3, 11 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to map value, value_size=16 off=9 size=8", .errstr = "invalid access to map value, value_size=16 off=9 size=8",
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6464,7 +6464,7 @@ static struct bpf_test tests[] = { ...@@ -6464,7 +6464,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_3, 0, 42), BPF_ST_MEM(BPF_DW, BPF_REG_3, 0, 42),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result = ACCEPT, .result = ACCEPT,
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -6485,7 +6485,7 @@ static struct bpf_test tests[] = { ...@@ -6485,7 +6485,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_3, 0, 42), BPF_ST_MEM(BPF_DW, BPF_REG_3, 0, 42),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result = ACCEPT, .result = ACCEPT,
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -6502,7 +6502,7 @@ static struct bpf_test tests[] = { ...@@ -6502,7 +6502,7 @@ static struct bpf_test tests[] = {
BPF_STX_MEM(BPF_DW, BPF_REG_0, BPF_REG_1, 0), BPF_STX_MEM(BPF_DW, BPF_REG_0, BPF_REG_1, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R1 !read_ok", .errstr_unpriv = "R1 !read_ok",
.errstr = "R1 !read_ok", .errstr = "R1 !read_ok",
.result = REJECT, .result = REJECT,
...@@ -6536,7 +6536,7 @@ static struct bpf_test tests[] = { ...@@ -6536,7 +6536,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_7, -4, 24), BPF_ST_MEM(BPF_DW, BPF_REG_7, -4, 24),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result = ACCEPT, .result = ACCEPT,
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -6564,7 +6564,7 @@ static struct bpf_test tests[] = { ...@@ -6564,7 +6564,7 @@ static struct bpf_test tests[] = {
BPF_LDX_MEM(BPF_DW, BPF_REG_7, BPF_REG_0, 4), BPF_LDX_MEM(BPF_DW, BPF_REG_7, BPF_REG_0, 4),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result = ACCEPT, .result = ACCEPT,
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -6583,7 +6583,7 @@ static struct bpf_test tests[] = { ...@@ -6583,7 +6583,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22), BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R0 bitwise operator &= on pointer", .errstr = "R0 bitwise operator &= on pointer",
.result = REJECT, .result = REJECT,
}, },
...@@ -6600,7 +6600,7 @@ static struct bpf_test tests[] = { ...@@ -6600,7 +6600,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22), BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R0 32-bit pointer arithmetic prohibited", .errstr = "R0 32-bit pointer arithmetic prohibited",
.result = REJECT, .result = REJECT,
}, },
...@@ -6617,7 +6617,7 @@ static struct bpf_test tests[] = { ...@@ -6617,7 +6617,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22), BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R0 pointer arithmetic with /= operator", .errstr = "R0 pointer arithmetic with /= operator",
.result = REJECT, .result = REJECT,
}, },
...@@ -6634,7 +6634,7 @@ static struct bpf_test tests[] = { ...@@ -6634,7 +6634,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22), BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 pointer arithmetic prohibited", .errstr_unpriv = "R0 pointer arithmetic prohibited",
.errstr = "invalid mem access 'inv'", .errstr = "invalid mem access 'inv'",
.result = REJECT, .result = REJECT,
...@@ -6658,7 +6658,7 @@ static struct bpf_test tests[] = { ...@@ -6658,7 +6658,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22), BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 22),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R0 invalid mem access 'inv'", .errstr = "R0 invalid mem access 'inv'",
.result = REJECT, .result = REJECT,
}, },
...@@ -6681,7 +6681,7 @@ static struct bpf_test tests[] = { ...@@ -6681,7 +6681,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_3, 0, 42), BPF_ST_MEM(BPF_DW, BPF_REG_3, 0, 42),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.result = ACCEPT, .result = ACCEPT,
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -6927,7 +6927,7 @@ static struct bpf_test tests[] = { ...@@ -6927,7 +6927,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -6953,7 +6953,7 @@ static struct bpf_test tests[] = { ...@@ -6953,7 +6953,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "invalid access to map value, value_size=48 off=0 size=49", .errstr = "invalid access to map value, value_size=48 off=0 size=49",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -6981,7 +6981,7 @@ static struct bpf_test tests[] = { ...@@ -6981,7 +6981,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -7008,7 +7008,7 @@ static struct bpf_test tests[] = { ...@@ -7008,7 +7008,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R1 min value is outside of the array range", .errstr = "R1 min value is outside of the array range",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -7080,7 +7080,7 @@ static struct bpf_test tests[] = { ...@@ -7080,7 +7080,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_csum_diff), BPF_EMIT_CALL(BPF_FUNC_csum_diff),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
}, },
...@@ -7105,7 +7105,7 @@ static struct bpf_test tests[] = { ...@@ -7105,7 +7105,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_csum_diff), BPF_EMIT_CALL(BPF_FUNC_csum_diff),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
}, },
...@@ -7128,7 +7128,7 @@ static struct bpf_test tests[] = { ...@@ -7128,7 +7128,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_csum_diff), BPF_EMIT_CALL(BPF_FUNC_csum_diff),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
}, },
...@@ -7209,7 +7209,7 @@ static struct bpf_test tests[] = { ...@@ -7209,7 +7209,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -7230,7 +7230,7 @@ static struct bpf_test tests[] = { ...@@ -7230,7 +7230,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -7250,7 +7250,7 @@ static struct bpf_test tests[] = { ...@@ -7250,7 +7250,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_probe_read), BPF_EMIT_CALL(BPF_FUNC_probe_read),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -7325,7 +7325,7 @@ static struct bpf_test tests[] = { ...@@ -7325,7 +7325,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R0 max value is outside of the array range", .errstr = "R0 max value is outside of the array range",
.result = REJECT, .result = REJECT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS, .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
...@@ -7355,7 +7355,7 @@ static struct bpf_test tests[] = { ...@@ -7355,7 +7355,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_REG(BPF_REG_0, 0), BPF_MOV64_REG(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr = "R0 max value is outside of the array range", .errstr = "R0 max value is outside of the array range",
.result = REJECT, .result = REJECT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS, .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
...@@ -7708,7 +7708,7 @@ static struct bpf_test tests[] = { ...@@ -7708,7 +7708,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -7732,7 +7732,7 @@ static struct bpf_test tests[] = { ...@@ -7732,7 +7732,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -7758,7 +7758,7 @@ static struct bpf_test tests[] = { ...@@ -7758,7 +7758,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -7783,7 +7783,7 @@ static struct bpf_test tests[] = { ...@@ -7783,7 +7783,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -7807,7 +7807,7 @@ static struct bpf_test tests[] = { ...@@ -7807,7 +7807,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
}, },
{ {
...@@ -7831,7 +7831,7 @@ static struct bpf_test tests[] = { ...@@ -7831,7 +7831,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -7877,7 +7877,7 @@ static struct bpf_test tests[] = { ...@@ -7877,7 +7877,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
}, },
{ {
...@@ -7902,7 +7902,7 @@ static struct bpf_test tests[] = { ...@@ -7902,7 +7902,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -7928,7 +7928,7 @@ static struct bpf_test tests[] = { ...@@ -7928,7 +7928,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
}, },
{ {
...@@ -7953,7 +7953,7 @@ static struct bpf_test tests[] = { ...@@ -7953,7 +7953,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -7980,7 +7980,7 @@ static struct bpf_test tests[] = { ...@@ -7980,7 +7980,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -8006,7 +8006,7 @@ static struct bpf_test tests[] = { ...@@ -8006,7 +8006,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -8035,7 +8035,7 @@ static struct bpf_test tests[] = { ...@@ -8035,7 +8035,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
}, },
...@@ -8065,7 +8065,7 @@ static struct bpf_test tests[] = { ...@@ -8065,7 +8065,7 @@ static struct bpf_test tests[] = {
BPF_JMP_REG(BPF_JGT, BPF_REG_1, BPF_REG_2, -3), BPF_JMP_REG(BPF_JGT, BPF_REG_1, BPF_REG_2, -3),
BPF_JMP_IMM(BPF_JA, 0, 0, -7), BPF_JMP_IMM(BPF_JA, 0, 0, -7),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.errstr = "R0 invalid mem access 'inv'", .errstr = "R0 invalid mem access 'inv'",
.result = REJECT, .result = REJECT,
}, },
...@@ -8093,7 +8093,7 @@ static struct bpf_test tests[] = { ...@@ -8093,7 +8093,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "unbounded min value", .errstr = "unbounded min value",
.result = REJECT, .result = REJECT,
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -8120,7 +8120,7 @@ static struct bpf_test tests[] = { ...@@ -8120,7 +8120,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "R0 max value is outside of the array range", .errstr = "R0 max value is outside of the array range",
.result = REJECT, .result = REJECT,
}, },
...@@ -8145,7 +8145,7 @@ static struct bpf_test tests[] = { ...@@ -8145,7 +8145,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "R0 min value is negative, either use unsigned index or do a if (index >=0) check.", .errstr = "R0 min value is negative, either use unsigned index or do a if (index >=0) check.",
.result = REJECT, .result = REJECT,
}, },
...@@ -8171,7 +8171,7 @@ static struct bpf_test tests[] = { ...@@ -8171,7 +8171,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT .result = ACCEPT
}, },
{ {
...@@ -8196,7 +8196,7 @@ static struct bpf_test tests[] = { ...@@ -8196,7 +8196,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "map_value pointer and 4294967295", .errstr = "map_value pointer and 4294967295",
.result = REJECT .result = REJECT
}, },
...@@ -8222,7 +8222,7 @@ static struct bpf_test tests[] = { ...@@ -8222,7 +8222,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "R0 min value is outside of the array range", .errstr = "R0 min value is outside of the array range",
.result = REJECT .result = REJECT
}, },
...@@ -8246,7 +8246,7 @@ static struct bpf_test tests[] = { ...@@ -8246,7 +8246,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.errstr = "value_size=8 off=1073741825", .errstr = "value_size=8 off=1073741825",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
...@@ -8271,7 +8271,7 @@ static struct bpf_test tests[] = { ...@@ -8271,7 +8271,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 4 }, .fixup_map_hash_8b = { 4 },
.errstr = "value 1073741823", .errstr = "value 1073741823",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
...@@ -8307,7 +8307,7 @@ static struct bpf_test tests[] = { ...@@ -8307,7 +8307,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT .result = ACCEPT
}, },
{ {
...@@ -8346,7 +8346,7 @@ static struct bpf_test tests[] = { ...@@ -8346,7 +8346,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
/* not actually fully unbounded, but the bound is very high */ /* not actually fully unbounded, but the bound is very high */
.errstr = "R0 unbounded memory access", .errstr = "R0 unbounded memory access",
.result = REJECT .result = REJECT
...@@ -8389,7 +8389,7 @@ static struct bpf_test tests[] = { ...@@ -8389,7 +8389,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
/* not actually fully unbounded, but the bound is very high */ /* not actually fully unbounded, but the bound is very high */
.errstr = "R0 unbounded memory access", .errstr = "R0 unbounded memory access",
.result = REJECT .result = REJECT
...@@ -8418,7 +8418,7 @@ static struct bpf_test tests[] = { ...@@ -8418,7 +8418,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT .result = ACCEPT
}, },
{ {
...@@ -8445,7 +8445,7 @@ static struct bpf_test tests[] = { ...@@ -8445,7 +8445,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "R0 max value is outside of the array range", .errstr = "R0 max value is outside of the array range",
.result = REJECT .result = REJECT
}, },
...@@ -8475,7 +8475,7 @@ static struct bpf_test tests[] = { ...@@ -8475,7 +8475,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "R0 unbounded memory access", .errstr = "R0 unbounded memory access",
.result = REJECT .result = REJECT
}, },
...@@ -8495,7 +8495,7 @@ static struct bpf_test tests[] = { ...@@ -8495,7 +8495,7 @@ static struct bpf_test tests[] = {
BPF_JMP_A(0), BPF_JMP_A(0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "map_value pointer and 2147483646", .errstr = "map_value pointer and 2147483646",
.result = REJECT .result = REJECT
}, },
...@@ -8517,7 +8517,7 @@ static struct bpf_test tests[] = { ...@@ -8517,7 +8517,7 @@ static struct bpf_test tests[] = {
BPF_JMP_A(0), BPF_JMP_A(0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "pointer offset 1073741822", .errstr = "pointer offset 1073741822",
.result = REJECT .result = REJECT
}, },
...@@ -8538,7 +8538,7 @@ static struct bpf_test tests[] = { ...@@ -8538,7 +8538,7 @@ static struct bpf_test tests[] = {
BPF_JMP_A(0), BPF_JMP_A(0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "pointer offset -1073741822", .errstr = "pointer offset -1073741822",
.result = REJECT .result = REJECT
}, },
...@@ -8560,7 +8560,7 @@ static struct bpf_test tests[] = { ...@@ -8560,7 +8560,7 @@ static struct bpf_test tests[] = {
BPF_JMP_A(0), BPF_JMP_A(0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "map_value pointer and 1000000000000", .errstr = "map_value pointer and 1000000000000",
.result = REJECT .result = REJECT
}, },
...@@ -8580,7 +8580,7 @@ static struct bpf_test tests[] = { ...@@ -8580,7 +8580,7 @@ static struct bpf_test tests[] = {
BPF_JMP_A(0), BPF_JMP_A(0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.retval = POINTER_VALUE, .retval = POINTER_VALUE,
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -8601,7 +8601,7 @@ static struct bpf_test tests[] = { ...@@ -8601,7 +8601,7 @@ static struct bpf_test tests[] = {
BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_0, 0), BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = ACCEPT, .result = ACCEPT,
.retval = POINTER_VALUE, .retval = POINTER_VALUE,
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -8669,7 +8669,7 @@ static struct bpf_test tests[] = { ...@@ -8669,7 +8669,7 @@ static struct bpf_test tests[] = {
BPF_MOV64_IMM(BPF_REG_0, 0), BPF_MOV64_IMM(BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 5 }, .fixup_map_hash_8b = { 5 },
.errstr = "variable stack read R2", .errstr = "variable stack read R2",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_LWT_IN, .prog_type = BPF_PROG_TYPE_LWT_IN,
...@@ -8750,7 +8750,7 @@ static struct bpf_test tests[] = { ...@@ -8750,7 +8750,7 @@ static struct bpf_test tests[] = {
offsetof(struct test_val, foo)), offsetof(struct test_val, foo)),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 3 }, .fixup_map_hash_48b = { 3 },
.errstr_unpriv = "R0 leaks addr", .errstr_unpriv = "R0 leaks addr",
.errstr = "R0 unbounded memory access", .errstr = "R0 unbounded memory access",
.result_unpriv = REJECT, .result_unpriv = REJECT,
...@@ -10284,7 +10284,7 @@ static struct bpf_test tests[] = { ...@@ -10284,7 +10284,7 @@ static struct bpf_test tests[] = {
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.fixup_map1 = { 16 }, .fixup_map_hash_8b = { 16 },
.result = REJECT, .result = REJECT,
.errstr = "R0 min value is outside of the array range", .errstr = "R0 min value is outside of the array range",
}, },
...@@ -11235,7 +11235,7 @@ static struct bpf_test tests[] = { ...@@ -11235,7 +11235,7 @@ static struct bpf_test tests[] = {
BPF_EXIT_INSN(), /* return 0 */ BPF_EXIT_INSN(), /* return 0 */
}, },
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.fixup_map1 = { 23 }, .fixup_map_hash_8b = { 23 },
.result = ACCEPT, .result = ACCEPT,
}, },
{ {
...@@ -11290,7 +11290,7 @@ static struct bpf_test tests[] = { ...@@ -11290,7 +11290,7 @@ static struct bpf_test tests[] = {
BPF_EXIT_INSN(), /* return 1 */ BPF_EXIT_INSN(), /* return 1 */
}, },
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.fixup_map1 = { 23 }, .fixup_map_hash_8b = { 23 },
.result = ACCEPT, .result = ACCEPT,
}, },
{ {
...@@ -11345,7 +11345,7 @@ static struct bpf_test tests[] = { ...@@ -11345,7 +11345,7 @@ static struct bpf_test tests[] = {
BPF_EXIT_INSN(), /* return 1 */ BPF_EXIT_INSN(), /* return 1 */
}, },
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.fixup_map1 = { 23 }, .fixup_map_hash_8b = { 23 },
.result = REJECT, .result = REJECT,
.errstr = "invalid read from stack off -16+0 size 8", .errstr = "invalid read from stack off -16+0 size 8",
}, },
...@@ -11417,7 +11417,7 @@ static struct bpf_test tests[] = { ...@@ -11417,7 +11417,7 @@ static struct bpf_test tests[] = {
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.fixup_map1 = { 12, 22 }, .fixup_map_hash_8b = { 12, 22 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to map value, value_size=8 off=2 size=8", .errstr = "invalid access to map value, value_size=8 off=2 size=8",
}, },
...@@ -11489,7 +11489,7 @@ static struct bpf_test tests[] = { ...@@ -11489,7 +11489,7 @@ static struct bpf_test tests[] = {
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.fixup_map1 = { 12, 22 }, .fixup_map_hash_8b = { 12, 22 },
.result = ACCEPT, .result = ACCEPT,
}, },
{ {
...@@ -11560,7 +11560,7 @@ static struct bpf_test tests[] = { ...@@ -11560,7 +11560,7 @@ static struct bpf_test tests[] = {
BPF_JMP_IMM(BPF_JA, 0, 0, -8), BPF_JMP_IMM(BPF_JA, 0, 0, -8),
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.fixup_map1 = { 12, 22 }, .fixup_map_hash_8b = { 12, 22 },
.result = REJECT, .result = REJECT,
.errstr = "invalid access to map value, value_size=8 off=2 size=8", .errstr = "invalid access to map value, value_size=8 off=2 size=8",
}, },
...@@ -11632,7 +11632,7 @@ static struct bpf_test tests[] = { ...@@ -11632,7 +11632,7 @@ static struct bpf_test tests[] = {
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.fixup_map1 = { 12, 22 }, .fixup_map_hash_8b = { 12, 22 },
.result = ACCEPT, .result = ACCEPT,
}, },
{ {
...@@ -11703,7 +11703,7 @@ static struct bpf_test tests[] = { ...@@ -11703,7 +11703,7 @@ static struct bpf_test tests[] = {
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.fixup_map1 = { 12, 22 }, .fixup_map_hash_8b = { 12, 22 },
.result = REJECT, .result = REJECT,
.errstr = "R0 invalid mem access 'inv'", .errstr = "R0 invalid mem access 'inv'",
}, },
...@@ -12048,7 +12048,7 @@ static struct bpf_test tests[] = { ...@@ -12048,7 +12048,7 @@ static struct bpf_test tests[] = {
BPF_STX_MEM(BPF_DW, BPF_REG_6, BPF_REG_0, 0), BPF_STX_MEM(BPF_DW, BPF_REG_6, BPF_REG_0, 0),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 13 }, .fixup_map_hash_8b = { 13 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
}, },
...@@ -12075,7 +12075,7 @@ static struct bpf_test tests[] = { ...@@ -12075,7 +12075,7 @@ static struct bpf_test tests[] = {
BPF_FUNC_map_lookup_elem), BPF_FUNC_map_lookup_elem),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 6 }, .fixup_map_hash_48b = { 6 },
.errstr = "invalid indirect read from stack off -8+0 size 8", .errstr = "invalid indirect read from stack off -8+0 size 8",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
...@@ -12107,8 +12107,8 @@ static struct bpf_test tests[] = { ...@@ -12107,8 +12107,8 @@ static struct bpf_test tests[] = {
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.fixup_map2 = { 13 }, .fixup_map_hash_48b = { 13 },
.fixup_map4 = { 16 }, .fixup_map_array_48b = { 16 },
.result = ACCEPT, .result = ACCEPT,
.retval = 1, .retval = 1,
}, },
...@@ -12140,7 +12140,7 @@ static struct bpf_test tests[] = { ...@@ -12140,7 +12140,7 @@ static struct bpf_test tests[] = {
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.fixup_map_in_map = { 16 }, .fixup_map_in_map = { 16 },
.fixup_map4 = { 13 }, .fixup_map_array_48b = { 13 },
.result = REJECT, .result = REJECT,
.errstr = "R0 invalid mem access 'map_ptr'", .errstr = "R0 invalid mem access 'map_ptr'",
}, },
...@@ -12208,7 +12208,7 @@ static struct bpf_test tests[] = { ...@@ -12208,7 +12208,7 @@ static struct bpf_test tests[] = {
BPF_ST_MEM(BPF_DW, BPF_REG_6, 0, 0xdead), BPF_ST_MEM(BPF_DW, BPF_REG_6, 0, 0xdead),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "R6 invalid mem access 'inv'", .errstr = "R6 invalid mem access 'inv'",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -12232,7 +12232,7 @@ static struct bpf_test tests[] = { ...@@ -12232,7 +12232,7 @@ static struct bpf_test tests[] = {
BPF_LDX_MEM(BPF_DW, BPF_REG_5, BPF_REG_10, -16), BPF_LDX_MEM(BPF_DW, BPF_REG_5, BPF_REG_10, -16),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.errstr = "invalid read from stack off -16+0 size 8", .errstr = "invalid read from stack off -16+0 size 8",
.result = REJECT, .result = REJECT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
...@@ -12354,7 +12354,7 @@ static struct bpf_test tests[] = { ...@@ -12354,7 +12354,7 @@ static struct bpf_test tests[] = {
BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_0, 3), BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_0, 3),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map1 = { 3 }, .fixup_map_hash_8b = { 3 },
.result = REJECT, .result = REJECT,
.errstr = "misaligned value access off", .errstr = "misaligned value access off",
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
...@@ -12464,7 +12464,7 @@ static struct bpf_test tests[] = { ...@@ -12464,7 +12464,7 @@ static struct bpf_test tests[] = {
BPF_EMIT_CALL(BPF_FUNC_get_stack), BPF_EMIT_CALL(BPF_FUNC_get_stack),
BPF_EXIT_INSN(), BPF_EXIT_INSN(),
}, },
.fixup_map2 = { 4 }, .fixup_map_hash_48b = { 4 },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_TRACEPOINT, .prog_type = BPF_PROG_TYPE_TRACEPOINT,
}, },
...@@ -13511,10 +13511,10 @@ static char bpf_vlog[UINT_MAX >> 8]; ...@@ -13511,10 +13511,10 @@ static char bpf_vlog[UINT_MAX >> 8];
static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type,
struct bpf_insn *prog, int *map_fds) struct bpf_insn *prog, int *map_fds)
{ {
int *fixup_map1 = test->fixup_map1; int *fixup_map_hash_8b = test->fixup_map_hash_8b;
int *fixup_map2 = test->fixup_map2; int *fixup_map_hash_48b = test->fixup_map_hash_48b;
int *fixup_map3 = test->fixup_map3; int *fixup_map_hash_16b = test->fixup_map_hash_16b;
int *fixup_map4 = test->fixup_map4; int *fixup_map_array_48b = test->fixup_map_array_48b;
int *fixup_prog1 = test->fixup_prog1; int *fixup_prog1 = test->fixup_prog1;
int *fixup_prog2 = test->fixup_prog2; int *fixup_prog2 = test->fixup_prog2;
int *fixup_map_in_map = test->fixup_map_in_map; int *fixup_map_in_map = test->fixup_map_in_map;
...@@ -13528,40 +13528,40 @@ static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, ...@@ -13528,40 +13528,40 @@ static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type,
* for verifier and not do a runtime lookup, so the only thing * for verifier and not do a runtime lookup, so the only thing
* that really matters is value size in this case. * that really matters is value size in this case.
*/ */
if (*fixup_map1) { if (*fixup_map_hash_8b) {
map_fds[0] = create_map(BPF_MAP_TYPE_HASH, sizeof(long long), map_fds[0] = create_map(BPF_MAP_TYPE_HASH, sizeof(long long),
sizeof(long long), 1); sizeof(long long), 1);
do { do {
prog[*fixup_map1].imm = map_fds[0]; prog[*fixup_map_hash_8b].imm = map_fds[0];
fixup_map1++; fixup_map_hash_8b++;
} while (*fixup_map1); } while (*fixup_map_hash_8b);
} }
if (*fixup_map2) { if (*fixup_map_hash_48b) {
map_fds[1] = create_map(BPF_MAP_TYPE_HASH, sizeof(long long), map_fds[1] = create_map(BPF_MAP_TYPE_HASH, sizeof(long long),
sizeof(struct test_val), 1); sizeof(struct test_val), 1);
do { do {
prog[*fixup_map2].imm = map_fds[1]; prog[*fixup_map_hash_48b].imm = map_fds[1];
fixup_map2++; fixup_map_hash_48b++;
} while (*fixup_map2); } while (*fixup_map_hash_48b);
} }
if (*fixup_map3) { if (*fixup_map_hash_16b) {
map_fds[2] = create_map(BPF_MAP_TYPE_HASH, sizeof(long long), map_fds[2] = create_map(BPF_MAP_TYPE_HASH, sizeof(long long),
sizeof(struct other_val), 1); sizeof(struct other_val), 1);
do { do {
prog[*fixup_map3].imm = map_fds[2]; prog[*fixup_map_hash_16b].imm = map_fds[2];
fixup_map3++; fixup_map_hash_16b++;
} while (*fixup_map3); } while (*fixup_map_hash_16b);
} }
if (*fixup_map4) { if (*fixup_map_array_48b) {
map_fds[3] = create_map(BPF_MAP_TYPE_ARRAY, sizeof(int), map_fds[3] = create_map(BPF_MAP_TYPE_ARRAY, sizeof(int),
sizeof(struct test_val), 1); sizeof(struct test_val), 1);
do { do {
prog[*fixup_map4].imm = map_fds[3]; prog[*fixup_map_array_48b].imm = map_fds[3];
fixup_map4++; fixup_map_array_48b++;
} while (*fixup_map4); } while (*fixup_map_array_48b);
} }
if (*fixup_prog1) { if (*fixup_prog1) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment