diff mbox

[net-next] test_bpf: Add backward jump test case

Message ID 1432309000-11545-1-git-send-email-ast@plumgrid.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Alexei Starovoitov May 22, 2015, 3:36 p.m. UTC
From: Michael Holzheu <holzheu@linux.vnet.ibm.com>

Currently the testsuite does not have a test case with a backward jump.
The s390x JIT (kernel 4.0) had a bug in that area.
So add one new test case for this now.

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
---
 lib/test_bpf.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

Comments

Daniel Borkmann May 22, 2015, 4:06 p.m. UTC | #1
On 05/22/2015 05:36 PM, Alexei Starovoitov wrote:
> From: Michael Holzheu <holzheu@linux.vnet.ibm.com>
>
> Currently the testsuite does not have a test case with a backward jump.
> The s390x JIT (kernel 4.0) had a bug in that area.
> So add one new test case for this now.
>
> Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
> Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>

Acked-by: Daniel Borkmann <daniel@iogearbox.net>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller May 22, 2015, 7:11 p.m. UTC | #2
From: Alexei Starovoitov <ast@plumgrid.com>
Date: Fri, 22 May 2015 08:36:40 -0700

> From: Michael Holzheu <holzheu@linux.vnet.ibm.com>
> 
> Currently the testsuite does not have a test case with a backward jump.
> The s390x JIT (kernel 4.0) had a bug in that area.
> So add one new test case for this now.
> 
> Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
> Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/lib/test_bpf.c b/lib/test_bpf.c
index aaa0a40a7eb3..9b012a811ee1 100644
--- a/lib/test_bpf.c
+++ b/lib/test_bpf.c
@@ -3940,6 +3940,22 @@  static struct bpf_test tests[] = {
 		{ },
 		{ { 0, 1 } },
 	},
+	/* BPF_JMP | BPF_JGT | BPF_K jump backwards */
+	{
+		"JMP_JGT_K: if (3 > 2) return 1 (jump backwards)",
+		.u.insns_int = {
+			BPF_JMP_IMM(BPF_JA, 0, 0, 2), /* goto start */
+			BPF_ALU32_IMM(BPF_MOV, R0, 1), /* out: */
+			BPF_EXIT_INSN(),
+			BPF_ALU32_IMM(BPF_MOV, R0, 0), /* start: */
+			BPF_LD_IMM64(R1, 3), /* note: this takes 2 insns */
+			BPF_JMP_IMM(BPF_JGT, R1, 2, -6), /* goto out */
+			BPF_EXIT_INSN(),
+		},
+		INTERNAL,
+		{ },
+		{ { 0, 1 } },
+	},
 	{
 		"JMP_JGE_K: if (3 >= 3) return 1",
 		.u.insns_int = {