gro: Only verify TCP checksums for candidates
authorHerbert Xu <herbert@gondor.apana.org.au>
Fri, 22 Nov 2013 02:31:29 +0000 (10:31 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 8 Dec 2013 15:29:14 +0000 (07:29 -0800)
commitd8f703112e39ab0d58bc140d2f8db80add02acf7
tree4c0875314d78939a479a4c7741826cefc78f046a
parentc5352f3600c8066715f5fa2f4cece0890d55c0a1
gro: Only verify TCP checksums for candidates

[ Upstream commit cc5c00bbb44c5d68b883aa5cb9d01514a2525d94 ]

In some cases we may receive IP packets that are longer than
their stated lengths.  Such packets are never merged in GRO.
However, we may end up computing their checksums incorrectly
and end up allowing packets with a bogus checksum enter our
stack with the checksum status set as verified.

Since such packets are rare and not performance-critical, this
patch simply skips the checksum verification for them.

Reported-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
Thanks,
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv4/tcp_offload.c
net/ipv6/tcpv6_offload.c