netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 net-next 0/3] ARM BPF JIT features
@ 2015-07-21 12:16 Nicolas Schichan
  2015-07-21 12:16 ` [PATCH V2 next-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT Nicolas Schichan
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Nicolas Schichan @ 2015-07-21 12:16 UTC (permalink / raw)
  To: David S. Miller, Daniel Borkmann, Nicolas Schichan,
	Mircea Gherzan, linux-arm-kernel, linux-kernel, netdev
  Cc: Russell King, Alexei Starovoitov

Hello,

This serie adds support for more instructions to the ARM BPF JIT
namely skb netdevice type retrieval, skb payload offset retrieval, and
skb packet type retrieval.

This allows 35 tests to use the JIT instead of 29 before.

This serie depends on the "BPF JIT fixes for ARM" serie sent earlier.

Regards,

Changes from original submission:
* split fixes and features in separate patch series.

Nicolas Schichan (3):
  ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT.
  ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET in ARM JIT.
  ARM: net: add support for BPF_ANC | SKF_AD_HATYPE in ARM JIT.

 arch/arm/net/bpf_jit_32.c | 41 +++++++++++++++++++++++++++++++++++++++--
 arch/arm/net/bpf_jit_32.h |  3 +++
 2 files changed, 42 insertions(+), 2 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH V2 next-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT.
  2015-07-21 12:16 [PATCH V2 net-next 0/3] ARM BPF JIT features Nicolas Schichan
@ 2015-07-21 12:16 ` Nicolas Schichan
  2015-07-21 12:16 ` [PATCH V2 net-next 2/3] ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET " Nicolas Schichan
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Nicolas Schichan @ 2015-07-21 12:16 UTC (permalink / raw)
  To: David S. Miller, Daniel Borkmann, Nicolas Schichan,
	Mircea Gherzan, linux-arm-kernel, linux-kernel, netdev
  Cc: Russell King, Alexei Starovoitov

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
---
 arch/arm/net/bpf_jit_32.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index 4550d24..67a2d44 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -864,6 +864,17 @@ b_epilogue:
 			else
 				OP_IMM3(ARM_AND, r_A, r_A, VLAN_TAG_PRESENT, ctx);
 			break;
+		case BPF_ANC | SKF_AD_PKTTYPE:
+			ctx->seen |= SEEN_SKB;
+			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
+						  __pkt_type_offset[0]) != 1);
+			off = PKT_TYPE_OFFSET();
+			emit(ARM_LDRB_I(r_A, r_skb, off), ctx);
+			emit(ARM_AND_I(r_A, r_A, PKT_TYPE_MAX), ctx);
+#ifdef __BIG_ENDIAN_BITFIELD
+			emit(ARM_LSR_I(r_A, r_A, 5), ctx);
+#endif
+			break;
 		case BPF_ANC | SKF_AD_QUEUE:
 			ctx->seen |= SEEN_SKB;
 			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V2 net-next 2/3] ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET in ARM JIT.
  2015-07-21 12:16 [PATCH V2 net-next 0/3] ARM BPF JIT features Nicolas Schichan
  2015-07-21 12:16 ` [PATCH V2 next-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT Nicolas Schichan
@ 2015-07-21 12:16 ` Nicolas Schichan
  2015-07-21 12:16 ` [PATCH V2 net-next 3/3] ARM: net: add support for BPF_ANC | SKF_AD_HATYPE " Nicolas Schichan
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Nicolas Schichan @ 2015-07-21 12:16 UTC (permalink / raw)
  To: David S. Miller, Daniel Borkmann, Nicolas Schichan,
	Mircea Gherzan, linux-arm-kernel, linux-kernel, netdev
  Cc: Russell King, Alexei Starovoitov

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
---
 arch/arm/net/bpf_jit_32.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index 67a2d44..fe28beb 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -884,6 +884,14 @@ b_epilogue:
 			off = offsetof(struct sk_buff, queue_mapping);
 			emit(ARM_LDRH_I(r_A, r_skb, off), ctx);
 			break;
+		case BPF_ANC | SKF_AD_PAY_OFFSET:
+			ctx->seen |= SEEN_SKB | SEEN_CALL;
+
+			emit(ARM_MOV_R(ARM_R0, r_skb), ctx);
+			emit_mov_i(ARM_R3, (unsigned int)skb_get_poff, ctx);
+			emit_blx_r(ARM_R3, ctx);
+			emit(ARM_MOV_R(r_A, ARM_R0), ctx);
+			break;
 		case BPF_LDX | BPF_W | BPF_ABS:
 			/*
 			 * load a 32bit word from struct seccomp_data.
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V2 net-next 3/3] ARM: net: add support for BPF_ANC | SKF_AD_HATYPE in ARM JIT.
  2015-07-21 12:16 [PATCH V2 net-next 0/3] ARM BPF JIT features Nicolas Schichan
  2015-07-21 12:16 ` [PATCH V2 next-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT Nicolas Schichan
  2015-07-21 12:16 ` [PATCH V2 net-next 2/3] ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET " Nicolas Schichan
@ 2015-07-21 12:16 ` Nicolas Schichan
  2015-07-21 15:53 ` [PATCH V2 net-next 0/3] ARM BPF JIT features Alexei Starovoitov
  2015-07-25  5:31 ` David Miller
  4 siblings, 0 replies; 11+ messages in thread
From: Nicolas Schichan @ 2015-07-21 12:16 UTC (permalink / raw)
  To: David S. Miller, Daniel Borkmann, Nicolas Schichan,
	Mircea Gherzan, linux-arm-kernel, linux-kernel, netdev
  Cc: Russell King, Alexei Starovoitov

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
---
 arch/arm/net/bpf_jit_32.c | 22 ++++++++++++++++++++--
 arch/arm/net/bpf_jit_32.h |  3 +++
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index fe28beb..6dcff2b 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -828,7 +828,9 @@ b_epilogue:
 			emit(ARM_LDR_I(r_A, r_scratch, off), ctx);
 			break;
 		case BPF_ANC | SKF_AD_IFINDEX:
+		case BPF_ANC | SKF_AD_HATYPE:
 			/* A = skb->dev->ifindex */
+			/* A = skb->dev->type */
 			ctx->seen |= SEEN_SKB;
 			off = offsetof(struct sk_buff, dev);
 			emit(ARM_LDR_I(r_scratch, r_skb, off), ctx);
@@ -838,8 +840,24 @@ b_epilogue:
 
 			BUILD_BUG_ON(FIELD_SIZEOF(struct net_device,
 						  ifindex) != 4);
-			off = offsetof(struct net_device, ifindex);
-			emit(ARM_LDR_I(r_A, r_scratch, off), ctx);
+			BUILD_BUG_ON(FIELD_SIZEOF(struct net_device,
+						  type) != 2);
+
+			if (code == (BPF_ANC | SKF_AD_IFINDEX)) {
+				off = offsetof(struct net_device, ifindex);
+				emit(ARM_LDR_I(r_A, r_scratch, off), ctx);
+			} else {
+				/*
+				 * offset of field "type" in "struct
+				 * net_device" is above what can be
+				 * used in the ldrh rd, [rn, #imm]
+				 * instruction, so load the offset in
+				 * a register and use ldrh rd, [rn, rm]
+				 */
+				off = offsetof(struct net_device, type);
+				emit_mov_i(ARM_R3, off, ctx);
+				emit(ARM_LDRH_R(r_A, r_scratch, ARM_R3), ctx);
+			}
 			break;
 		case BPF_ANC | SKF_AD_MARK:
 			ctx->seen |= SEEN_SKB;
diff --git a/arch/arm/net/bpf_jit_32.h b/arch/arm/net/bpf_jit_32.h
index b2d7d92..4b17d5ab 100644
--- a/arch/arm/net/bpf_jit_32.h
+++ b/arch/arm/net/bpf_jit_32.h
@@ -74,6 +74,7 @@
 #define ARM_INST_LDRB_I		0x05d00000
 #define ARM_INST_LDRB_R		0x07d00000
 #define ARM_INST_LDRH_I		0x01d000b0
+#define ARM_INST_LDRH_R		0x019000b0
 #define ARM_INST_LDR_I		0x05900000
 
 #define ARM_INST_LDM		0x08900000
@@ -160,6 +161,8 @@
 				 | (rm))
 #define ARM_LDRH_I(rt, rn, off)	(ARM_INST_LDRH_I | (rt) << 12 | (rn) << 16 \
 				 | (((off) & 0xf0) << 4) | ((off) & 0xf))
+#define ARM_LDRH_R(rt, rn, rm)	(ARM_INST_LDRH_R | (rt) << 12 | (rn) << 16 \
+				 | (rm))
 
 #define ARM_LDM(rn, regs)	(ARM_INST_LDM | (rn) << 16 | (regs))
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH V2 net-next 0/3] ARM BPF JIT features
  2015-07-21 12:16 [PATCH V2 net-next 0/3] ARM BPF JIT features Nicolas Schichan
                   ` (2 preceding siblings ...)
  2015-07-21 12:16 ` [PATCH V2 net-next 3/3] ARM: net: add support for BPF_ANC | SKF_AD_HATYPE " Nicolas Schichan
@ 2015-07-21 15:53 ` Alexei Starovoitov
  2015-07-25  5:31 ` David Miller
  4 siblings, 0 replies; 11+ messages in thread
From: Alexei Starovoitov @ 2015-07-21 15:53 UTC (permalink / raw)
  To: Nicolas Schichan, David S. Miller, Daniel Borkmann,
	Mircea Gherzan, linux-arm-kernel, linux-kernel, netdev
  Cc: Russell King

On 7/21/15 5:16 AM, Nicolas Schichan wrote:
> This serie adds support for more instructions to the ARM BPF JIT
> namely skb netdevice type retrieval, skb payload offset retrieval, and
> skb packet type retrieval.
>
> This allows 35 tests to use the JIT instead of 29 before.
>
> This serie depends on the "BPF JIT fixes for ARM" serie sent earlier.

Actually in these patches I don't see a strong dependency on 'net' set,
but since you're saying there is, you'd need to resubmit this set after
your 'net' set is merged, whole 'net' sent to Linus and merged
into net-next.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH V2 net-next 0/3] ARM BPF JIT features
  2015-07-21 12:16 [PATCH V2 net-next 0/3] ARM BPF JIT features Nicolas Schichan
                   ` (3 preceding siblings ...)
  2015-07-21 15:53 ` [PATCH V2 net-next 0/3] ARM BPF JIT features Alexei Starovoitov
@ 2015-07-25  5:31 ` David Miller
  2015-07-27 13:06   ` [PATCH V3 " Nicolas Schichan
  4 siblings, 1 reply; 11+ messages in thread
From: David Miller @ 2015-07-25  5:31 UTC (permalink / raw)
  To: nschichan
  Cc: dborkman, mgherzan, linux-arm-kernel, linux-kernel, netdev, linux, ast

From: Nicolas Schichan <nschichan@freebox.fr>
Date: Tue, 21 Jul 2015 14:16:37 +0200

> This serie adds support for more instructions to the ARM BPF JIT

"series"

> namely skb netdevice type retrieval, skb payload offset retrieval, and
> skb packet type retrieval.
> 
> This allows 35 tests to use the JIT instead of 29 before.
> 
> This serie depends on the "BPF JIT fixes for ARM" serie sent earlier.

"series"

But even with that series applied these patches do not apply properly
at all.

davem@greenl8ke:~/src/GIT/net-next$ git am --signoff bundle-8569-arm-bpf-next.mbox 
Applying: ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT.
error: patch failed: arch/arm/net/bpf_jit_32.c:864
error: arch/arm/net/bpf_jit_32.c: patch does not apply
Patch failed at 0001 ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT.
When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".

Please respin against net-next, thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH V3 net-next 0/3] ARM BPF JIT features
  2015-07-25  5:31 ` David Miller
@ 2015-07-27 13:06   ` Nicolas Schichan
  2015-07-27 13:06     ` [PATCH V3 net-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT Nicolas Schichan
                       ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Nicolas Schichan @ 2015-07-27 13:06 UTC (permalink / raw)
  To: David S. Miller, Daniel Borkmann, Nicolas Schichan,
	Mircea Gherzan, linux-arm-kernel, linux-kernel, netdev
  Cc: Russell King, Alexei Starovoitov

Hello,

This series adds support for more instructions to the ARM BPF JIT
namely skb netdevice type retrieval, skb payload offset retrieval, and
skb packet type retrieval.

This allows 35 tests to use the JIT instead of 29 before.

This series depends on the "BPF JIT fixes for ARM" serie sent earlier.

Regards,

Changes from V1 to V2:
* split fixes and features in separate patch series.

Changes from V2 to V3:
* respin against latest net-next.

Nicolas Schichan (3):
  ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT.
  ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET in ARM JIT.
  ARM: net: add support for BPF_ANC | SKF_AD_HATYPE in ARM JIT.

 arch/arm/net/bpf_jit_32.c | 41 +++++++++++++++++++++++++++++++++++++++--
 arch/arm/net/bpf_jit_32.h |  3 +++
 2 files changed, 42 insertions(+), 2 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH V3 net-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT.
  2015-07-27 13:06   ` [PATCH V3 " Nicolas Schichan
@ 2015-07-27 13:06     ` Nicolas Schichan
  2015-07-27 13:06     ` [PATCH V3 net-next 2/3] ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET " Nicolas Schichan
                       ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: Nicolas Schichan @ 2015-07-27 13:06 UTC (permalink / raw)
  To: David S. Miller, Daniel Borkmann, Nicolas Schichan,
	Mircea Gherzan, linux-arm-kernel, linux-kernel, netdev
  Cc: Russell King, Alexei Starovoitov

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
---
 arch/arm/net/bpf_jit_32.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index c011e22..6ff248c 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -895,6 +895,17 @@ b_epilogue:
 				OP_IMM3(ARM_AND, r_A, r_A, 0x1, ctx);
 			}
 			break;
+		case BPF_ANC | SKF_AD_PKTTYPE:
+			ctx->seen |= SEEN_SKB;
+			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
+						  __pkt_type_offset[0]) != 1);
+			off = PKT_TYPE_OFFSET();
+			emit(ARM_LDRB_I(r_A, r_skb, off), ctx);
+			emit(ARM_AND_I(r_A, r_A, PKT_TYPE_MAX), ctx);
+#ifdef __BIG_ENDIAN_BITFIELD
+			emit(ARM_LSR_I(r_A, r_A, 5), ctx);
+#endif
+			break;
 		case BPF_ANC | SKF_AD_QUEUE:
 			ctx->seen |= SEEN_SKB;
 			BUILD_BUG_ON(FIELD_SIZEOF(struct sk_buff,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V3 net-next 2/3] ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET in ARM JIT.
  2015-07-27 13:06   ` [PATCH V3 " Nicolas Schichan
  2015-07-27 13:06     ` [PATCH V3 net-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT Nicolas Schichan
@ 2015-07-27 13:06     ` Nicolas Schichan
  2015-07-27 13:06     ` [PATCH V3 net-next 3/3] ARM: net: add support for BPF_ANC | SKF_AD_HATYPE " Nicolas Schichan
  2015-07-27 21:57     ` [PATCH V3 net-next 0/3] ARM BPF JIT features David Miller
  3 siblings, 0 replies; 11+ messages in thread
From: Nicolas Schichan @ 2015-07-27 13:06 UTC (permalink / raw)
  To: David S. Miller, Daniel Borkmann, Nicolas Schichan,
	Mircea Gherzan, linux-arm-kernel, linux-kernel, netdev
  Cc: Russell King, Alexei Starovoitov

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
---
 arch/arm/net/bpf_jit_32.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index 6ff248c..3c73caf 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -915,6 +915,14 @@ b_epilogue:
 			off = offsetof(struct sk_buff, queue_mapping);
 			emit(ARM_LDRH_I(r_A, r_skb, off), ctx);
 			break;
+		case BPF_ANC | SKF_AD_PAY_OFFSET:
+			ctx->seen |= SEEN_SKB | SEEN_CALL;
+
+			emit(ARM_MOV_R(ARM_R0, r_skb), ctx);
+			emit_mov_i(ARM_R3, (unsigned int)skb_get_poff, ctx);
+			emit_blx_r(ARM_R3, ctx);
+			emit(ARM_MOV_R(r_A, ARM_R0), ctx);
+			break;
 		case BPF_LDX | BPF_W | BPF_ABS:
 			/*
 			 * load a 32bit word from struct seccomp_data.
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH V3 net-next 3/3] ARM: net: add support for BPF_ANC | SKF_AD_HATYPE in ARM JIT.
  2015-07-27 13:06   ` [PATCH V3 " Nicolas Schichan
  2015-07-27 13:06     ` [PATCH V3 net-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT Nicolas Schichan
  2015-07-27 13:06     ` [PATCH V3 net-next 2/3] ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET " Nicolas Schichan
@ 2015-07-27 13:06     ` Nicolas Schichan
  2015-07-27 21:57     ` [PATCH V3 net-next 0/3] ARM BPF JIT features David Miller
  3 siblings, 0 replies; 11+ messages in thread
From: Nicolas Schichan @ 2015-07-27 13:06 UTC (permalink / raw)
  To: David S. Miller, Daniel Borkmann, Nicolas Schichan,
	Mircea Gherzan, linux-arm-kernel, linux-kernel, netdev
  Cc: Russell King, Alexei Starovoitov

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
---
 arch/arm/net/bpf_jit_32.c | 22 ++++++++++++++++++++--
 arch/arm/net/bpf_jit_32.h |  3 +++
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index 3c73caf..876060b 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -857,7 +857,9 @@ b_epilogue:
 			emit(ARM_LDR_I(r_A, r_scratch, off), ctx);
 			break;
 		case BPF_ANC | SKF_AD_IFINDEX:
+		case BPF_ANC | SKF_AD_HATYPE:
 			/* A = skb->dev->ifindex */
+			/* A = skb->dev->type */
 			ctx->seen |= SEEN_SKB;
 			off = offsetof(struct sk_buff, dev);
 			emit(ARM_LDR_I(r_scratch, r_skb, off), ctx);
@@ -867,8 +869,24 @@ b_epilogue:
 
 			BUILD_BUG_ON(FIELD_SIZEOF(struct net_device,
 						  ifindex) != 4);
-			off = offsetof(struct net_device, ifindex);
-			emit(ARM_LDR_I(r_A, r_scratch, off), ctx);
+			BUILD_BUG_ON(FIELD_SIZEOF(struct net_device,
+						  type) != 2);
+
+			if (code == (BPF_ANC | SKF_AD_IFINDEX)) {
+				off = offsetof(struct net_device, ifindex);
+				emit(ARM_LDR_I(r_A, r_scratch, off), ctx);
+			} else {
+				/*
+				 * offset of field "type" in "struct
+				 * net_device" is above what can be
+				 * used in the ldrh rd, [rn, #imm]
+				 * instruction, so load the offset in
+				 * a register and use ldrh rd, [rn, rm]
+				 */
+				off = offsetof(struct net_device, type);
+				emit_mov_i(ARM_R3, off, ctx);
+				emit(ARM_LDRH_R(r_A, r_scratch, ARM_R3), ctx);
+			}
 			break;
 		case BPF_ANC | SKF_AD_MARK:
 			ctx->seen |= SEEN_SKB;
diff --git a/arch/arm/net/bpf_jit_32.h b/arch/arm/net/bpf_jit_32.h
index b2d7d92..4b17d5ab 100644
--- a/arch/arm/net/bpf_jit_32.h
+++ b/arch/arm/net/bpf_jit_32.h
@@ -74,6 +74,7 @@
 #define ARM_INST_LDRB_I		0x05d00000
 #define ARM_INST_LDRB_R		0x07d00000
 #define ARM_INST_LDRH_I		0x01d000b0
+#define ARM_INST_LDRH_R		0x019000b0
 #define ARM_INST_LDR_I		0x05900000
 
 #define ARM_INST_LDM		0x08900000
@@ -160,6 +161,8 @@
 				 | (rm))
 #define ARM_LDRH_I(rt, rn, off)	(ARM_INST_LDRH_I | (rt) << 12 | (rn) << 16 \
 				 | (((off) & 0xf0) << 4) | ((off) & 0xf))
+#define ARM_LDRH_R(rt, rn, rm)	(ARM_INST_LDRH_R | (rt) << 12 | (rn) << 16 \
+				 | (rm))
 
 #define ARM_LDM(rn, regs)	(ARM_INST_LDM | (rn) << 16 | (regs))
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH V3 net-next 0/3] ARM BPF JIT features
  2015-07-27 13:06   ` [PATCH V3 " Nicolas Schichan
                       ` (2 preceding siblings ...)
  2015-07-27 13:06     ` [PATCH V3 net-next 3/3] ARM: net: add support for BPF_ANC | SKF_AD_HATYPE " Nicolas Schichan
@ 2015-07-27 21:57     ` David Miller
  3 siblings, 0 replies; 11+ messages in thread
From: David Miller @ 2015-07-27 21:57 UTC (permalink / raw)
  To: nschichan
  Cc: dborkman, mgherzan, linux-arm-kernel, linux-kernel, netdev, linux, ast

From: Nicolas Schichan <nschichan@freebox.fr>
Date: Mon, 27 Jul 2015 15:06:48 +0200

> This series adds support for more instructions to the ARM BPF JIT
> namely skb netdevice type retrieval, skb payload offset retrieval, and
> skb packet type retrieval.
> 
> This allows 35 tests to use the JIT instead of 29 before.
> 
> This series depends on the "BPF JIT fixes for ARM" serie sent earlier.

Series applied, thanks.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-07-27 21:57 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-21 12:16 [PATCH V2 net-next 0/3] ARM BPF JIT features Nicolas Schichan
2015-07-21 12:16 ` [PATCH V2 next-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT Nicolas Schichan
2015-07-21 12:16 ` [PATCH V2 net-next 2/3] ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET " Nicolas Schichan
2015-07-21 12:16 ` [PATCH V2 net-next 3/3] ARM: net: add support for BPF_ANC | SKF_AD_HATYPE " Nicolas Schichan
2015-07-21 15:53 ` [PATCH V2 net-next 0/3] ARM BPF JIT features Alexei Starovoitov
2015-07-25  5:31 ` David Miller
2015-07-27 13:06   ` [PATCH V3 " Nicolas Schichan
2015-07-27 13:06     ` [PATCH V3 net-next 1/3] ARM: net: add support for BPF_ANC | SKF_AD_PKTTYPE in ARM JIT Nicolas Schichan
2015-07-27 13:06     ` [PATCH V3 net-next 2/3] ARM: net: add support for BPF_ANC | SKF_AD_PAY_OFFSET " Nicolas Schichan
2015-07-27 13:06     ` [PATCH V3 net-next 3/3] ARM: net: add support for BPF_ANC | SKF_AD_HATYPE " Nicolas Schichan
2015-07-27 21:57     ` [PATCH V3 net-next 0/3] ARM BPF JIT features David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).