]> git.ipfire.org Git - people/arne_f/kernel.git/commit
arm64: bpf: fix endianness conversion bugs
authorXi Wang <xi.wang@gmail.com>
Fri, 26 Jun 2015 01:39:15 +0000 (18:39 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Aug 2015 16:29:18 +0000 (09:29 -0700)
commit1aca08fe1fba6dd5e895a379519c57a5918d5281
tree24e224db5787bea5ffca668a9a661f602ce168b0
parent83893dd22e36d0da4b27ed7d8930669d84044d23
arm64: bpf: fix endianness conversion bugs

commit d63903bbc30c7ccad040851dfdb4da12d9a17bcf upstream.

Upper bits should be zeroed in endianness conversion:

- even when there's no need to change endianness (i.e., BPF_FROM_BE
  on big endian or BPF_FROM_LE on little endian);

- after rev16.

This patch fixes such bugs by emitting extra instructions to clear
upper bits.

Cc: Zi Shen Lim <zlim.lnx@gmail.com>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Fixes: e54bcde3d69d ("arm64: eBPF JIT compiler")
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/net/bpf_jit.h
arch/arm64/net/bpf_jit_comp.c