projects
/
GitHub
/
moto-9609
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0a29b3d
)
sparc: bpf_jit: add support for BPF_LD(X) | BPF_LEN instructions
author
Alexei Starovoitov
<ast@plumgrid.com>
Tue, 23 Sep 2014 21:36:11 +0000
(14:36 -0700)
committer
David S. Miller
<davem@davemloft.net>
Fri, 26 Sep 2014 20:52:09 +0000
(16:52 -0400)
BPF_LD | BPF_W | BPF_LEN instruction is occasionally used by tcpdump
and present in 11 tests in lib/test_bpf.c
Teach sparc JIT compiler to emit it.
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/net/bpf_jit_comp.c
patch
|
blob
|
blame
|
history
diff --git
a/arch/sparc/net/bpf_jit_comp.c
b/arch/sparc/net/bpf_jit_comp.c
index c1c60c32f6dde7cda0acdfdd98ae2402875ff5a3..f33e7c7a3bf74d48232e0c9708877cb63a6a4aaa 100644
(file)
--- a/
arch/sparc/net/bpf_jit_comp.c
+++ b/
arch/sparc/net/bpf_jit_comp.c
@@
-624,7
+624,12
@@
void bpf_jit_compile(struct bpf_prog *fp)
emit_and(r_A, r_TMP, r_A);
}
break;
-
+ case BPF_LD | BPF_W | BPF_LEN:
+ emit_skb_load32(len, r_A);
+ break;
+ case BPF_LDX | BPF_W | BPF_LEN:
+ emit_skb_load32(len, r_X);
+ break;
case BPF_LD | BPF_IMM:
emit_loadimm(K, r_A);
break;