forcedeth: checksum fix
authorAyaz Abdulla <aabdulla@nvidia.com>
Sun, 13 Jan 2008 21:02:55 +0000 (16:02 -0500)
committerDavid S. Miller <davem@davemloft.net>
Sun, 3 Feb 2008 12:28:37 +0000 (04:28 -0800)
commitbfaffe8fae0273b57f2146d1759cbd25d07c81e9
tree126bdea1b8f7d8d2231a32ddd5dda4a349905a8a
parent0a62677b26ccb31cd81fc55d14d27d8cd3560d7d
forcedeth: checksum fix

The driver should inform the stack when checksum has been performed by
the HW when both IP and TCP (or UDP) checksum flags are indicated by HW.

Previously, it would also inform the stack when only IP checksum flag
was indicated by HW. This can cause data corruption when IP fragments
are used. The IP Identification field can wrap around and cause data
from new fragments to fill into older fragment slots with same IP Id.
The stack would then not perform TCP/UDP checksum (after re-assembly of
all fragments) since driver falsely stated it was already calculated.

Signed-off-by: Ayaz Abdulla <aabdulla@nvidia.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/forcedeth.c