Subject: [PATCH] forcedeth: fix checksum flag

From: Ayaz Abdulla <[email-masked]>
Date: Thu, 14 Aug 2008 18:49:09 -0400

This patch fixes 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 created to check for extension headers and perform 
software checksum calculation.

Signed-off-by: Ayaz Abdulla <[email-masked]>
--- old/drivers/net/forcedeth.c	2008-08-14 18:37:11.000000000 -0400
+++ new/drivers/net/forcedeth.c	2008-08-14 18:37:05.000000000 -0400
@@ -5522,7 +5522,7 @@
 	if (id->driver_data & DEV_HAS_CHECKSUM) {
 		np->rx_csum = 1;
 		np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK;
-		dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG;
+		dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
 		dev->features |= NETIF_F_TSO;
 	}
 
@@ -5835,7 +5835,7 @@
 
 	dev_printk(KERN_INFO, &pci_dev->dev, "%s%s%s%s%s%s%s%s%s%sdesc-v%u\n",
 		   dev->features & NETIF_F_HIGHDMA ? "highdma " : "",
-		   dev->features & (NETIF_F_HW_CSUM | NETIF_F_SG) ?
+		   dev->features & (NETIF_F_IP_CSUM | NETIF_F_SG) ?
 		   	"csum " : "",
 		   dev->features & (NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX) ?
 		   	"vlan " : "",