OSDN Git Service

x86: bpf_jit: fix FROM_BE16 and FROM_LE16/32 instructions
authorAlexei Starovoitov <ast@plumgrid.com>
Tue, 12 May 2015 06:25:16 +0000 (23:25 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Jun 2015 00:03:20 +0000 (17:03 -0700)
commitcf14e9bcbfc8f200bef39f1b611ce12c7bec90e2
treeab30faed7acc412a4d28c680bb602c68d047fb8e
parent30aab722a5276745543b32840f1d73bacbd0dd48
x86: bpf_jit: fix FROM_BE16 and FROM_LE16/32 instructions

[ Upstream commit 343f845b375989f1753f605902931fa939aa2223 ]

FROM_BE16:
'ror %reg, 8' doesn't clear upper bits of the register,
so use additional 'movzwl' insn to zero extend 16 bits into 64

FROM_LE16:
should zero extend lower 16 bits into 64 bit

FROM_LE32:
should zero extend lower 32 bits into 64 bit

Fixes: 89aa075832b0 ("net: sock: allow eBPF programs to be attached to sockets")
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/net/bpf_jit_comp.c