diff options
author | Alexei Starovoitov <ast@plumgrid.com> | 2014-09-16 15:35:35 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-09-19 15:34:40 -0400 |
commit | 709f6c58d4dcd2b300c914ec17b297acae4cb998 (patch) | |
tree | e5396d29661ade147a75db7acf39f68f1e2cb25c /arch/sparc/net | |
parent | bf3c228d36c6b3c90074f928e84e318621969cc6 (diff) |
sparc: bpf_jit: add SKF_AD_PKTTYPE support to JIT
commit 233577a22089 ("net: filter: constify detection of pkt_type_offset")
allows us to implement simple PKTTYPE support in sparc JIT
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/net')
-rw-r--r-- | arch/sparc/net/bpf_jit_comp.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/arch/sparc/net/bpf_jit_comp.c b/arch/sparc/net/bpf_jit_comp.c index b2ad9dc5425e..2dde48bdcc42 100644 --- a/arch/sparc/net/bpf_jit_comp.c +++ b/arch/sparc/net/bpf_jit_comp.c | |||
@@ -579,16 +579,11 @@ void bpf_jit_compile(struct bpf_prog *fp) | |||
579 | case BPF_ANC | SKF_AD_PROTOCOL: | 579 | case BPF_ANC | SKF_AD_PROTOCOL: |
580 | emit_skb_load16(protocol, r_A); | 580 | emit_skb_load16(protocol, r_A); |
581 | break; | 581 | break; |
582 | #if 0 | ||
583 | /* GCC won't let us take the address of | ||
584 | * a bit field even though we very much | ||
585 | * know what we are doing here. | ||
586 | */ | ||
587 | case BPF_ANC | SKF_AD_PKTTYPE: | 582 | case BPF_ANC | SKF_AD_PKTTYPE: |
588 | __emit_skb_load8(pkt_type, r_A); | 583 | __emit_skb_load8(__pkt_type_offset, r_A); |
584 | emit_andi(r_A, PKT_TYPE_MAX, r_A); | ||
589 | emit_alu_K(SRL, 5); | 585 | emit_alu_K(SRL, 5); |
590 | break; | 586 | break; |
591 | #endif | ||
592 | case BPF_ANC | SKF_AD_IFINDEX: | 587 | case BPF_ANC | SKF_AD_IFINDEX: |
593 | emit_skb_loadptr(dev, r_A); | 588 | emit_skb_loadptr(dev, r_A); |
594 | emit_cmpi(r_A, 0); | 589 | emit_cmpi(r_A, 0); |