Commit 6007b23c authored by Björn Töpel's avatar Björn Töpel Committed by Andrii Nakryiko
Browse files

selftests/bpf: Mark tests that require unaligned memory access



A lot of tests require unaligned memory access to work. Mark the tests
as such, so that they can be avoided on unsupported architectures such
as RISC-V.

Signed-off-by: default avatarBjörn Töpel <bjorn.topel@gmail.com>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Acked-by: default avatarLuke Nelson <luke.r.nels@gmail.com>
Link: https://lore.kernel.org/bpf/20201118071640.83773-4-bjorn.topel@gmail.com
parent c77b0589
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -266,6 +266,7 @@
	.result = REJECT,
	.prog_type = BPF_PROG_TYPE_SK_LOOKUP,
	.expected_attach_type = BPF_SK_LOOKUP,
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"invalid 8-byte read from bpf_sk_lookup remote_ip4 field",
@@ -292,6 +293,7 @@
	.result = REJECT,
	.prog_type = BPF_PROG_TYPE_SK_LOOKUP,
	.expected_attach_type = BPF_SK_LOOKUP,
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"invalid 8-byte read from bpf_sk_lookup remote_port field",
@@ -305,6 +307,7 @@
	.result = REJECT,
	.prog_type = BPF_PROG_TYPE_SK_LOOKUP,
	.expected_attach_type = BPF_SK_LOOKUP,
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"invalid 8-byte read from bpf_sk_lookup local_ip4 field",
@@ -331,6 +334,7 @@
	.result = REJECT,
	.prog_type = BPF_PROG_TYPE_SK_LOOKUP,
	.expected_attach_type = BPF_SK_LOOKUP,
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"invalid 8-byte read from bpf_sk_lookup local_port field",
@@ -344,6 +348,7 @@
	.result = REJECT,
	.prog_type = BPF_PROG_TYPE_SK_LOOKUP,
	.expected_attach_type = BPF_SK_LOOKUP,
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
/* invalid 1,2,4-byte reads from 8-byte fields in bpf_sk_lookup */
{
@@ -410,6 +415,7 @@
	.result = REJECT,
	.prog_type = BPF_PROG_TYPE_SK_LOOKUP,
	.expected_attach_type = BPF_SK_LOOKUP,
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"invalid 4-byte unaligned read from bpf_sk_lookup at even offset",
@@ -422,6 +428,7 @@
	.result = REJECT,
	.prog_type = BPF_PROG_TYPE_SK_LOOKUP,
	.expected_attach_type = BPF_SK_LOOKUP,
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
/* in-bound and out-of-bound writes to bpf_sk_lookup */
{
+3 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@
	.fixup_map_array_48b = { 1 },
	.result = REJECT,
	.errstr = "R1 min value is outside of the allowed memory range",
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"direct map access, write test 7",
@@ -195,6 +196,7 @@
	.fixup_map_array_48b = { 1, 3 },
	.result = REJECT,
	.errstr = "invalid access to map value, value_size=48 off=47 size=2",
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"direct map access, write test 17",
@@ -209,6 +211,7 @@
	.fixup_map_array_48b = { 1, 3 },
	.result = REJECT,
	.errstr = "invalid access to map value, value_size=48 off=47 size=2",
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"direct map access, write test 18",
+1 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@
	.errstr_unpriv = "bpf_array access is allowed only to CAP_PERFMON and CAP_SYS_ADMIN",
	.result = REJECT,
	.errstr = "cannot access ptr member ops with moff 0 in struct bpf_map with off 1 size 4",
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"bpf_map_ptr: read ops field accepted",
+1 −0
Original line number Diff line number Diff line
@@ -31,4 +31,5 @@
	.fixup_map_hash_8b = { 1, },
	.prog_type = BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
	.errstr = "R6 invalid variable buffer offset: off=0, var_off=(0x0; 0xffffffff)",
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
+4 −0
Original line number Diff line number Diff line
@@ -675,6 +675,7 @@
	.prog_type = BPF_PROG_TYPE_SCHED_CLS,
	.result = REJECT,
	.errstr = "invalid mem access",
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"reference tracking: use ptr from bpf_sk_fullsock() after release",
@@ -698,6 +699,7 @@
	.prog_type = BPF_PROG_TYPE_SCHED_CLS,
	.result = REJECT,
	.errstr = "invalid mem access",
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"reference tracking: use ptr from bpf_sk_fullsock(tp) after release",
@@ -725,6 +727,7 @@
	.prog_type = BPF_PROG_TYPE_SCHED_CLS,
	.result = REJECT,
	.errstr = "invalid mem access",
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"reference tracking: use sk after bpf_sk_release(tp)",
@@ -747,6 +750,7 @@
	.prog_type = BPF_PROG_TYPE_SCHED_CLS,
	.result = REJECT,
	.errstr = "invalid mem access",
	.flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS,
},
{
	"reference tracking: use ptr from bpf_get_listener_sock() after bpf_sk_release(sk)",
Loading