Use F_NEEDS_EFFICIENT_UNALIGNED_ACCESS in more tests where the
expected result is REJECT.

Signed-off-by: David S. Miller <da...@davemloft.net>
---
 tools/testing/selftests/bpf/test_verifier.c | 44 +++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/tools/testing/selftests/bpf/test_verifier.c 
b/tools/testing/selftests/bpf/test_verifier.c
index af145f5..d8dda16 100644
--- a/tools/testing/selftests/bpf/test_verifier.c
+++ b/tools/testing/selftests/bpf/test_verifier.c
@@ -1823,6 +1823,7 @@ static struct bpf_test tests[] = {
                .errstr = "invalid bpf_context access",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_SK_MSG,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "direct packet read for SK_MSG",
@@ -2187,6 +2188,8 @@ static struct bpf_test tests[] = {
                },
                .errstr = "invalid bpf_context access",
                .result = REJECT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "check cb access: half, wrong type",
@@ -3249,6 +3252,7 @@ static struct bpf_test tests[] = {
                .result = REJECT,
                .errstr = "R0 invalid mem access 'inv'",
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "raw_stack: skb_load_bytes, spilled regs corruption 2",
@@ -3279,6 +3283,7 @@ static struct bpf_test tests[] = {
                .result = REJECT,
                .errstr = "R3 invalid mem access 'inv'",
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "raw_stack: skb_load_bytes, spilled regs + data",
@@ -3778,6 +3783,7 @@ static struct bpf_test tests[] = {
                .errstr = "R2 invalid mem access 'inv'",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "direct packet access: test16 (arith on data_end)",
@@ -3961,6 +3967,7 @@ static struct bpf_test tests[] = {
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .result = REJECT,
                .errstr = "invalid access to packet, off=0 size=8, 
R5(id=1,off=0,r=0)",
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "direct packet access: test24 (x += pkt_ptr, 5)",
@@ -5117,6 +5124,7 @@ static struct bpf_test tests[] = {
                .result = REJECT,
                .errstr = "invalid access to map value, value_size=64 off=-2 
size=4",
                .prog_type = BPF_PROG_TYPE_CGROUP_SKB,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "invalid cgroup storage access 5",
@@ -5233,6 +5241,7 @@ static struct bpf_test tests[] = {
                .result = REJECT,
                .errstr = "invalid access to map value, value_size=64 off=-2 
size=4",
                .prog_type = BPF_PROG_TYPE_CGROUP_SKB,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "invalid per-cpu cgroup storage access 5",
@@ -7149,6 +7158,7 @@ static struct bpf_test tests[] = {
                .errstr = "invalid mem access 'inv'",
                .result = REJECT,
                .result_unpriv = REJECT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "map element value illegal alu op, 5",
@@ -7171,6 +7181,7 @@ static struct bpf_test tests[] = {
                .fixup_map_hash_48b = { 3 },
                .errstr = "R0 invalid mem access 'inv'",
                .result = REJECT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "map element value is preserved across register spilling",
@@ -9663,6 +9674,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_end > pkt_data', good access",
@@ -9701,6 +9713,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_end > pkt_data', bad access 2",
@@ -9719,6 +9732,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data' < pkt_end, good access",
@@ -9757,6 +9771,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data' < pkt_end, bad access 2",
@@ -9775,6 +9790,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_end < pkt_data', good access",
@@ -9829,6 +9845,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data' >= pkt_end, good access",
@@ -9865,6 +9882,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data' >= pkt_end, bad access 2",
@@ -9940,6 +9958,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data' <= pkt_end, good access",
@@ -9996,6 +10015,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_end <= pkt_data', good access",
@@ -10032,6 +10052,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_end <= pkt_data', bad access 2",
@@ -10105,6 +10126,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data > pkt_meta', good access",
@@ -10143,6 +10165,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data > pkt_meta', bad access 2",
@@ -10161,6 +10184,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_meta' < pkt_data, good access",
@@ -10199,6 +10223,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_meta' < pkt_data, bad access 2",
@@ -10217,6 +10242,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data < pkt_meta', good access",
@@ -10271,6 +10297,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_meta' >= pkt_data, good access",
@@ -10307,6 +10334,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_meta' >= pkt_data, bad access 2",
@@ -10382,6 +10410,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_meta' <= pkt_data, good access",
@@ -10438,6 +10467,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data <= pkt_meta', good access",
@@ -10474,6 +10504,7 @@ static struct bpf_test tests[] = {
                .errstr = "R1 offset is outside of the packet",
                .result = REJECT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data <= pkt_meta', bad access 2",
@@ -10578,6 +10609,7 @@ static struct bpf_test tests[] = {
                },
                .result = REJECT,
                .errstr = "dereference of modified ctx ptr",
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "check deducing bounds from const, 8",
@@ -10591,6 +10623,7 @@ static struct bpf_test tests[] = {
                },
                .result = REJECT,
                .errstr = "dereference of modified ctx ptr",
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "check deducing bounds from const, 9",
@@ -11065,6 +11098,7 @@ static struct bpf_test tests[] = {
                .result = REJECT,
                .errstr = "R6 invalid mem access 'inv'",
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: two calls with args",
@@ -11930,6 +11964,7 @@ static struct bpf_test tests[] = {
                .fixup_map_hash_8b = { 12, 22 },
                .result = REJECT,
                .errstr = "invalid access to map value, value_size=8 off=2 
size=8",
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: two calls that receive map_value via 
arg=ptr_stack_of_caller. test2",
@@ -12073,6 +12108,7 @@ static struct bpf_test tests[] = {
                .fixup_map_hash_8b = { 12, 22 },
                .result = REJECT,
                .errstr = "invalid access to map value, value_size=8 off=2 
size=8",
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: two calls that receive map_value_ptr_or_null via arg. 
test1",
@@ -12244,6 +12280,7 @@ static struct bpf_test tests[] = {
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .retval = POINTER_VALUE,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: pkt_ptr spill into caller stack 2",
@@ -12275,6 +12312,7 @@ static struct bpf_test tests[] = {
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .errstr = "invalid access to packet",
                .result = REJECT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: pkt_ptr spill into caller stack 3",
@@ -12377,6 +12415,7 @@ static struct bpf_test tests[] = {
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .errstr = "same insn cannot be used with different",
                .result = REJECT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: pkt_ptr spill into caller stack 6",
@@ -12412,6 +12451,7 @@ static struct bpf_test tests[] = {
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .errstr = "R4 invalid mem access",
                .result = REJECT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: pkt_ptr spill into caller stack 7",
@@ -12446,6 +12486,7 @@ static struct bpf_test tests[] = {
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .errstr = "R4 invalid mem access",
                .result = REJECT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: pkt_ptr spill into caller stack 8",
@@ -12527,6 +12568,7 @@ static struct bpf_test tests[] = {
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .errstr = "invalid access to packet",
                .result = REJECT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: caller stack init to zero or map_value_or_null",
@@ -12892,6 +12934,7 @@ static struct bpf_test tests[] = {
                .result = REJECT,
                .errstr = "BPF_XADD stores into R2 pkt is not allowed",
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "xadd/w check whether src/dst got mangled, 1",
@@ -13378,6 +13421,7 @@ static struct bpf_test tests[] = {
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .errstr = "Unreleased reference",
                .result = REJECT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "reference tracking: alloc, check, free in both subbranches",
-- 
2.1.2.532.g19b5d50

Reply via email to