diff options
author | Dave Airlie <airlied@redhat.com> | 2014-01-29 09:38:32 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2014-01-29 09:38:32 +1000 |
commit | a5bd4f8ab0443ea62be34b112eb78cafb6b3042d (patch) | |
tree | df3357914d967c2cf4619dbd14f4609daf406a15 /arch/sparc/net/bpf_jit_comp.c | |
parent | dee13f12f6ab0c0927adf9168dfc84da93fc9f13 (diff) | |
parent | bed86f15bdc23436fb30d09e2faa3dfb7d3834e1 (diff) |
Merge branch 'drm-armada-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox into drm-next
Just one-liner which corrects a select statement for DRM_KMS_FB_HELPER
which looks like it was missed in the initial merge. Based on 3.13.
* 'drm-armada-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox: (55 commits)
DRM: armada: fix missing DRM_KMS_FB_HELPER select
Diffstat (limited to 'arch/sparc/net/bpf_jit_comp.c')
-rw-r--r-- | arch/sparc/net/bpf_jit_comp.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/arch/sparc/net/bpf_jit_comp.c b/arch/sparc/net/bpf_jit_comp.c index 218b6b23c37..01fe9946d38 100644 --- a/arch/sparc/net/bpf_jit_comp.c +++ b/arch/sparc/net/bpf_jit_comp.c @@ -497,9 +497,20 @@ void bpf_jit_compile(struct sk_filter *fp) case BPF_S_ALU_MUL_K: /* A *= K */ emit_alu_K(MUL, K); break; - case BPF_S_ALU_DIV_K: /* A /= K */ - emit_alu_K(MUL, K); - emit_read_y(r_A); + case BPF_S_ALU_DIV_K: /* A /= K with K != 0*/ + if (K == 1) + break; + emit_write_y(G0); +#ifdef CONFIG_SPARC32 + /* The Sparc v8 architecture requires + * three instructions between a %y + * register write and the first use. + */ + emit_nop(); + emit_nop(); + emit_nop(); +#endif + emit_alu_K(DIV, K); break; case BPF_S_ALU_DIV_X: /* A /= X; */ emit_cmpi(r_X, 0); |