]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
bpf: Apply F_NEEDS_EFFICIENT_UNALIGNED_ACCESS to more ACCEPT test cases.
authorDavid S. Miller <davem@davemloft.net>
Wed, 2 Jun 2021 03:27:51 +0000 (11:27 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Jun 2021 11:24:08 +0000 (13:24 +0200)
commit 0a68632488aa0129ed530af9ae9e8573f5650812 upstream

If a testcase has alignment problems but is expected to be ACCEPT,
verify it using F_NEEDS_EFFICIENT_UNALIGNED_ACCESS too.

Maybe in the future if we add some architecture specific code to elide
the unaligned memory access warnings during the test, we can execute
these as well.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/testing/selftests/bpf/test_verifier.c

index a402121e981240f7785ec03ce897911210ac4b8a..2241e4eefde350c250942545cf1e1053c96ad1fe 100644 (file)
@@ -3787,6 +3787,7 @@ static struct bpf_test tests[] = {
                },
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .result = ACCEPT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "direct packet access: test21 (x += pkt_ptr, 2)",
@@ -3812,6 +3813,7 @@ static struct bpf_test tests[] = {
                },
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .result = ACCEPT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "direct packet access: test22 (x += pkt_ptr, 3)",
@@ -3842,6 +3844,7 @@ static struct bpf_test tests[] = {
                },
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .result = ACCEPT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "direct packet access: test23 (x += pkt_ptr, 4)",
@@ -3894,6 +3897,7 @@ static struct bpf_test tests[] = {
                },
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .result = ACCEPT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "direct packet access: test25 (marking on <, good access)",
@@ -6957,6 +6961,7 @@ static struct bpf_test tests[] = {
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .retval = 0 /* csum_diff of 64-byte packet */,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "helper access to variable memory: size = 0 not allowed on NULL (!ARG_PTR_TO_MEM_OR_NULL)",
@@ -8923,6 +8928,7 @@ static struct bpf_test tests[] = {
                },
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data' > pkt_end, bad access 1",
@@ -9094,6 +9100,7 @@ static struct bpf_test tests[] = {
                },
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_end < pkt_data', bad access 1",
@@ -9206,6 +9213,7 @@ static struct bpf_test tests[] = {
                },
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_end >= pkt_data', bad access 1",
@@ -9263,6 +9271,7 @@ static struct bpf_test tests[] = {
                },
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data' <= pkt_end, bad access 1",
@@ -9375,6 +9384,7 @@ static struct bpf_test tests[] = {
                },
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_meta' > pkt_data, bad access 1",
@@ -9546,6 +9556,7 @@ static struct bpf_test tests[] = {
                },
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data < pkt_meta', bad access 1",
@@ -9658,6 +9669,7 @@ static struct bpf_test tests[] = {
                },
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_data >= pkt_meta', bad access 1",
@@ -9715,6 +9727,7 @@ static struct bpf_test tests[] = {
                },
                .result = ACCEPT,
                .prog_type = BPF_PROG_TYPE_XDP,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "XDP pkt read, pkt_meta' <= pkt_data, bad access 1",
@@ -11646,6 +11659,7 @@ static struct bpf_test tests[] = {
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .result = ACCEPT,
                .retval = 1,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: pkt_ptr spill into caller stack 4",
@@ -11680,6 +11694,7 @@ static struct bpf_test tests[] = {
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .result = ACCEPT,
                .retval = 1,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: pkt_ptr spill into caller stack 5",
@@ -11825,6 +11840,7 @@ static struct bpf_test tests[] = {
                },
                .prog_type = BPF_PROG_TYPE_SCHED_CLS,
                .result = ACCEPT,
+               .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
        },
        {
                "calls: pkt_ptr spill into caller stack 9",