Herbert Xu
0718bcc09b
[NET]: Fix CHECKSUM_HW GSO problems.
...
Fix checksum problems in the GSO code path for CHECKSUM_HW packets.
The ipv4 TCP pseudo header checksum has to be adjusted for GSO
segmented packets.
The adjustment is needed because the length field in the pseudo-header
changes. However, because we have the inequality oldlen > newlen, we
know that delta = (u16)~oldlen + newlen is still a 16-bit quantity.
This also means that htonl(delta) + th->check still fits in 32 bits.
Therefore we don't have to use csum_add on this operations.
This is based on a patch by Michael Chan <mchan@broadcom.com>.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-06-25 23:55:46 -07:00
..
2006-03-26 08:56:55 -08:00
2006-06-25 10:00:54 -07:00
2006-06-23 02:07:33 -07:00
2006-06-17 21:28:41 -07:00
2006-04-14 15:00:20 -07:00
2005-08-29 16:01:32 -07:00
2006-04-14 15:00:20 -07:00
2006-06-17 21:28:41 -07:00
2006-06-17 20:37:28 -07:00
2006-01-03 13:11:21 -08:00
2005-08-29 16:08:31 -07:00
2006-03-23 01:16:06 -08:00
2006-02-09 16:43:41 -08:00
2006-04-09 22:25:23 -07:00
2006-06-17 21:29:41 -07:00
2006-06-17 21:29:37 -07:00
2006-03-20 22:52:32 -08:00
2006-01-09 14:56:56 -08:00
2006-04-14 15:00:20 -07:00
2006-01-03 13:10:54 -08:00
2006-01-09 14:16:18 -08:00
2006-06-12 13:09:59 -07:00
2006-04-09 22:43:55 -07:00
2006-04-09 22:25:29 -07:00
2006-05-06 18:11:39 -07:00
2006-05-09 15:18:50 -07:00
2006-06-23 02:07:29 -07:00
2006-03-20 22:48:35 -08:00
2006-06-17 21:30:16 -07:00
2006-03-20 22:23:58 -08:00
2006-04-09 22:25:25 -07:00
2006-03-20 22:32:28 -08:00
2006-06-17 21:29:25 -07:00
2006-06-17 21:29:31 -07:00
2005-08-29 15:33:20 -07:00
2005-06-13 14:29:06 -07:00
2005-06-13 14:29:06 -07:00
2006-02-02 16:59:16 -08:00
2005-04-16 15:20:36 -07:00
2006-04-09 22:25:41 -07:00
2006-04-11 06:18:31 -07:00
2005-08-29 15:41:54 -07:00
2006-06-17 21:29:39 -07:00
2006-06-25 10:01:01 -07:00
2006-01-03 13:10:38 -08:00
2006-06-17 21:30:53 -07:00
2006-06-17 21:29:29 -07:00
2006-06-17 21:29:29 -07:00
2006-06-17 21:29:29 -07:00
2006-06-17 21:29:29 -07:00
2005-08-29 15:57:54 -07:00
2006-06-17 21:29:33 -07:00
2006-06-17 21:29:29 -07:00
2005-11-10 16:53:30 -08:00
2006-06-23 02:07:29 -07:00
2006-06-17 21:25:56 -07:00
2006-06-17 21:29:21 -07:00
2006-01-03 13:10:47 -08:00
2006-06-23 02:07:29 -07:00
2006-06-17 21:29:35 -07:00
2005-11-10 17:07:24 -08:00
2006-03-20 17:53:41 -08:00
2006-01-04 13:59:32 -08:00
2006-06-17 21:29:29 -07:00
2006-06-17 21:30:38 -07:00
2006-06-25 23:55:46 -07:00
2006-04-09 22:25:25 -07:00
2006-03-20 22:48:35 -08:00
2006-06-17 21:28:39 -07:00
2006-06-17 21:28:41 -07:00
2006-06-17 21:28:39 -07:00
2006-06-23 02:07:38 -07:00
2006-06-17 21:28:37 -07:00
2006-06-17 21:28:37 -07:00
2006-04-01 00:52:46 -08:00