提交 6c8ee6a4 编写于 作者: D David S. Miller 提交者: Yang Yingliang

bpf: Apply F_NEEDS_EFFICIENT_UNALIGNED_ACCESS to more ACCEPT test cases.

commit 0a686324 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: NDavid S. Miller <davem@davemloft.net>
Signed-off-by: NAlexei Starovoitov <ast@kernel.org>
Signed-off-by: NTiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 42cb0908
...@@ -3787,6 +3787,7 @@ static struct bpf_test tests[] = { ...@@ -3787,6 +3787,7 @@ static struct bpf_test tests[] = {
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.result = ACCEPT, .result = ACCEPT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"direct packet access: test21 (x += pkt_ptr, 2)", "direct packet access: test21 (x += pkt_ptr, 2)",
...@@ -3812,6 +3813,7 @@ static struct bpf_test tests[] = { ...@@ -3812,6 +3813,7 @@ static struct bpf_test tests[] = {
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.result = ACCEPT, .result = ACCEPT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"direct packet access: test22 (x += pkt_ptr, 3)", "direct packet access: test22 (x += pkt_ptr, 3)",
...@@ -3842,6 +3844,7 @@ static struct bpf_test tests[] = { ...@@ -3842,6 +3844,7 @@ static struct bpf_test tests[] = {
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.result = ACCEPT, .result = ACCEPT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"direct packet access: test23 (x += pkt_ptr, 4)", "direct packet access: test23 (x += pkt_ptr, 4)",
...@@ -3894,6 +3897,7 @@ static struct bpf_test tests[] = { ...@@ -3894,6 +3897,7 @@ static struct bpf_test tests[] = {
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.result = ACCEPT, .result = ACCEPT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"direct packet access: test25 (marking on <, good access)", "direct packet access: test25 (marking on <, good access)",
...@@ -6957,6 +6961,7 @@ static struct bpf_test tests[] = { ...@@ -6957,6 +6961,7 @@ static struct bpf_test tests[] = {
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.retval = 0 /* csum_diff of 64-byte packet */, .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)", "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[] = { ...@@ -8923,6 +8928,7 @@ static struct bpf_test tests[] = {
}, },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"XDP pkt read, pkt_data' > pkt_end, bad access 1", "XDP pkt read, pkt_data' > pkt_end, bad access 1",
...@@ -9094,6 +9100,7 @@ static struct bpf_test tests[] = { ...@@ -9094,6 +9100,7 @@ static struct bpf_test tests[] = {
}, },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"XDP pkt read, pkt_end < pkt_data', bad access 1", "XDP pkt read, pkt_end < pkt_data', bad access 1",
...@@ -9206,6 +9213,7 @@ static struct bpf_test tests[] = { ...@@ -9206,6 +9213,7 @@ static struct bpf_test tests[] = {
}, },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"XDP pkt read, pkt_end >= pkt_data', bad access 1", "XDP pkt read, pkt_end >= pkt_data', bad access 1",
...@@ -9263,6 +9271,7 @@ static struct bpf_test tests[] = { ...@@ -9263,6 +9271,7 @@ static struct bpf_test tests[] = {
}, },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"XDP pkt read, pkt_data' <= pkt_end, bad access 1", "XDP pkt read, pkt_data' <= pkt_end, bad access 1",
...@@ -9375,6 +9384,7 @@ static struct bpf_test tests[] = { ...@@ -9375,6 +9384,7 @@ static struct bpf_test tests[] = {
}, },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"XDP pkt read, pkt_meta' > pkt_data, bad access 1", "XDP pkt read, pkt_meta' > pkt_data, bad access 1",
...@@ -9546,6 +9556,7 @@ static struct bpf_test tests[] = { ...@@ -9546,6 +9556,7 @@ static struct bpf_test tests[] = {
}, },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"XDP pkt read, pkt_data < pkt_meta', bad access 1", "XDP pkt read, pkt_data < pkt_meta', bad access 1",
...@@ -9658,6 +9669,7 @@ static struct bpf_test tests[] = { ...@@ -9658,6 +9669,7 @@ static struct bpf_test tests[] = {
}, },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"XDP pkt read, pkt_data >= pkt_meta', bad access 1", "XDP pkt read, pkt_data >= pkt_meta', bad access 1",
...@@ -9715,6 +9727,7 @@ static struct bpf_test tests[] = { ...@@ -9715,6 +9727,7 @@ static struct bpf_test tests[] = {
}, },
.result = ACCEPT, .result = ACCEPT,
.prog_type = BPF_PROG_TYPE_XDP, .prog_type = BPF_PROG_TYPE_XDP,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"XDP pkt read, pkt_meta' <= pkt_data, bad access 1", "XDP pkt read, pkt_meta' <= pkt_data, bad access 1",
...@@ -11646,6 +11659,7 @@ static struct bpf_test tests[] = { ...@@ -11646,6 +11659,7 @@ static struct bpf_test tests[] = {
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.result = ACCEPT, .result = ACCEPT,
.retval = 1, .retval = 1,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"calls: pkt_ptr spill into caller stack 4", "calls: pkt_ptr spill into caller stack 4",
...@@ -11680,6 +11694,7 @@ static struct bpf_test tests[] = { ...@@ -11680,6 +11694,7 @@ static struct bpf_test tests[] = {
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.result = ACCEPT, .result = ACCEPT,
.retval = 1, .retval = 1,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"calls: pkt_ptr spill into caller stack 5", "calls: pkt_ptr spill into caller stack 5",
...@@ -11825,6 +11840,7 @@ static struct bpf_test tests[] = { ...@@ -11825,6 +11840,7 @@ static struct bpf_test tests[] = {
}, },
.prog_type = BPF_PROG_TYPE_SCHED_CLS, .prog_type = BPF_PROG_TYPE_SCHED_CLS,
.result = ACCEPT, .result = ACCEPT,
.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
}, },
{ {
"calls: pkt_ptr spill into caller stack 9", "calls: pkt_ptr spill into caller stack 9",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册