Patchwork [1/6] offloading: Accept NETIF_F_HW_CSUM for all protocols.

login
register
mail settings
Submitter Jesse Gross
Date Jan. 9, 2011, 4:23 p.m.
Message ID <1294590215-15541-1-git-send-email-jesse@nicira.com>
Download mbox | patch
Permalink /patch/78031/
State Accepted
Delegated to: David Miller
Headers show

Comments

Jesse Gross - Jan. 9, 2011, 4:23 p.m.
We currently only have software fallback for one type of checksum: the
TCP/UDP one's complement.  This means that a protocol that uses hardware
offloading for a different type of checksum (FCoE, SCTP) must directly
check the device's features and do the right thing ahead of time.  By
the time we get to dev_can_checksum(), we're only deciding whether to
apply the one algorithm in software or hardware.  NETIF_F_HW_CSUM has the
same capabilities as the software version, so we should always use it if
present.  The primary advantage of this is multiply tagged vlans can use
hardware checksumming.

Signed-off-by: Jesse Gross <jesse@nicira.com>
---
 net/core/dev.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
David Miller - Jan. 10, 2011, 7:36 a.m.
Thanks for doing this work Jesse, I've applied all of these patches.

I added a "net " prefix to the commit header lines so that people know
what kind of "offloading" these changes are about :-)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/core/dev.c b/net/core/dev.c
index a215269..d8befd0 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1734,7 +1734,7 @@  EXPORT_SYMBOL(netif_device_attach);
 
 static bool can_checksum_protocol(unsigned long features, __be16 protocol)
 {
-	return ((features & NETIF_F_NO_CSUM) ||
+	return ((features & NETIF_F_GEN_CSUM) ||
 		((features & NETIF_F_V4_CSUM) &&
 		 protocol == htons(ETH_P_IP)) ||
 		((features & NETIF_F_V6_CSUM) &&