# \[PATCH 5/6\] ARM: net: add support for BPF\_ANC \| SKF\_AD\_PAY\_OFFSET in ARM JIT.

- From: Nicolas Schichan \<hidden\>
- Date: 2015-07-16 16:47:30 
- List: linux-arm-kernel
- Page: https://ratatoskr.run/linux-arm-kernel/2015/07/4536641
- Thread: https://ratatoskr.run/linux-arm-kernel/2015/07/4536636/t.md

```text
Signed-off-by: Nicolas Schichan <redacted>
---
 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
```
