From: Alexei Starovoitov <a...@plumgrid.com> Date: Mon, 27 Apr 2015 14:40:37 -0700
> ALU64_DIV instruction should be dividing 64-bit by 64-bit, > whereas do_div() does 64-bit by 32-bit divide. > x64 and arm64 JITs correctly implement 64 by 64 unsigned divide. > llvm BPF backend emits code assuming that ALU64_DIV does 64 by 64. > > Fixes: 89aa075832b0 ("net: sock: allow eBPF programs to be attached to > sockets") > Reported-by: Michael Holzheu <holz...@linux.vnet.ibm.com> > Acked-by: Daniel Borkmann <dan...@iogearbox.net> > Signed-off-by: Alexei Starovoitov <a...@plumgrid.com> > --- > The bug is old and sneaked in during the very first eBPF code drop: > Fixes: bd4cf0ed331a ("net: filter: rework/optimize internal BPF interpreter's > instruction set") > but it's not affecting classic and shouldn't be backported further > than commit 89aa075832b0 (which is the above Fixes tag). > It was found by exhaustive tests being written by Michael Holzheu. Ok, applied and queued up for v3.19 -stable and later. Thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html