2.4.36-stable kernel tree
Revisão | b4343b5e489aeb2287d1f41a9cd176c987146cbe (tree) |
---|---|
Hora | 2008-11-09 23:45:27 |
Autor | Ayaz Abdulla <aabdulla@nvid...> |
Commiter | Willy Tarreau |
forcedeth: fix checksum flag
[backport of 2.6 commit edcfe5f7e307846e578fb88d69fa27051fded0ab]
Fix the checksum feature advertised in device flags. The hardware support
TCP/UDP over IPv4 and TCP/UDP over IPv6 (without IPv6 extension headers).
However, the kernel feature flags do not distinguish IPv6 with/without
extension headers.
Therefore, the driver needs to use NETIF_F_IP_CSUM instead of
NETIF_F_HW_CSUM since the latter includes all IPv6 packets.
A future patch can be created to check for extension headers and perform
software checksum calculation.
Signed-off-by: Ayaz Abdulla <aabdulla@nvidia.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Cc: Manfred Spraul <manfred@colorfullife.com
Cc: <stable@kernel.org> [2.6.25.x, 2.6.26.x]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
@@ -2553,7 +2553,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i | ||
2553 | 2553 | |
2554 | 2554 | if (id->driver_data & DEV_HAS_CHECKSUM) { |
2555 | 2555 | np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK; |
2556 | - dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG; | |
2556 | + dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG; | |
2557 | 2557 | #ifdef NETIF_F_TSO |
2558 | 2558 | dev->features |= NETIF_F_TSO; |
2559 | 2559 | #endif |