lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 10 Nov 2014 10:26:41 -0800 From: Alexei Starovoitov <alexei.starovoitov@...il.com> To: Denis Kirjanov <kda@...ux-powerpc.org> Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org>, linuxppc-dev@...abs.org, Daniel Borkmann <dborkman@...hat.com>, Philippe Bergheaud <felix@...ux.vnet.ibm.com> Subject: Re: [PATCH v2 net-next] PPC: bpf_jit_comp: add SKF_AD_HATYPE instruction On Sun, Nov 9, 2014 at 9:59 PM, Denis Kirjanov <kda@...ux-powerpc.org> wrote: > Add BPF extension SKF_AD_HATYPE to ppc JIT to check > the hw type of the interface > > Before: > [ 57.723666] test_bpf: #20 LD_HATYPE > [ 57.723675] BPF filter opcode 0020 (@0) unsupported > [ 57.724168] 48 48 PASS > > After: > [ 103.053184] test_bpf: #20 LD_HATYPE 7 6 PASS > > CC: Alexei Starovoitov<alexei.starovoitov@...il.com> > CC: Daniel Borkmann<dborkman@...hat.com> > CC: Philippe Bergheaud<felix@...ux.vnet.ibm.com> > Signed-off-by: Denis Kirjanov <kda@...ux-powerpc.org> > > v2: address Alexei's comments > --- > arch/powerpc/net/bpf_jit_comp.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c > index d110e28..d3fa80d 100644 > --- a/arch/powerpc/net/bpf_jit_comp.c > +++ b/arch/powerpc/net/bpf_jit_comp.c > @@ -361,6 +361,11 @@ static int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, > protocol)); > break; > case BPF_ANC | SKF_AD_IFINDEX: > + case BPF_ANC | SKF_AD_HATYPE: > + BUILD_BUG_ON(FIELD_SIZEOF(struct net_device, > + ifindex) != 4); > + BUILD_BUG_ON(FIELD_SIZEOF(struct net_device, > + type) != 2); > PPC_LD_OFFS(r_scratch1, r_skb, offsetof(struct sk_buff, > dev)); > PPC_CMPDI(r_scratch1, 0); > @@ -368,14 +373,18 @@ static int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, > PPC_BCC(COND_EQ, addrs[ctx->pc_ret0]); > } else { > /* Exit, returning 0; first pass hits here. */ > - PPC_BCC_SHORT(COND_NE, (ctx->idx*4)+12); > + PPC_BCC_SHORT(COND_NE, ctx->idx * 4 + 12); > PPC_LI(r_ret, 0); > PPC_JMP(exit_addr); > } > - BUILD_BUG_ON(FIELD_SIZEOF(struct net_device, > - ifindex) != 4); > - PPC_LWZ_OFFS(r_A, r_scratch1, > + if (code == (BPF_ANC | SKF_AD_IFINDEX)) { > + PPC_LWZ_OFFS(r_A, r_scratch1, > offsetof(struct net_device, ifindex)); > + } else { > + PPC_LHZ_OFFS(r_A, r_scratch1, > + offsetof(struct net_device, type)); formatting is a bit off here, but that's minor. Acked-by: Alexei Starovoitov <ast@...mgrid.com> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists