summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2007-07-14 19:07:52 -0700
committerDavid S. Miller <davem@davemloft.net>2007-07-14 19:07:52 -0700
commit6460d948f3ebf7d5040328a60a0ab7221f69945b (patch)
treed7c2a7eda9f20a03698df32bdc4677ca0c2479d5 /net
parentfebca281f677a775c61cd0572c2f35e4ead9e7d5 (diff)
downloadlinux-6460d948f3ebf7d5040328a60a0ab7221f69945b.tar.gz
linux-6460d948f3ebf7d5040328a60a0ab7221f69945b.tar.bz2
linux-6460d948f3ebf7d5040328a60a0ab7221f69945b.zip
[NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices.
Add ethtool utility function to set or clear IPV6_CSUM feature flag. Modify tg3.c and bnx2.c to use this function when doing ethtool -K to change tx checksum. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/core/ethtool.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index 8d5e5a09b576..0b531e98ec33 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -52,6 +52,17 @@ int ethtool_op_set_tx_hw_csum(struct net_device *dev, u32 data)
return 0;
}
+
+int ethtool_op_set_tx_ipv6_csum(struct net_device *dev, u32 data)
+{
+ if (data)
+ dev->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
+ else
+ dev->features &= ~(NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM);
+
+ return 0;
+}
+
u32 ethtool_op_get_sg(struct net_device *dev)
{
return (dev->features & NETIF_F_SG) != 0;
@@ -980,5 +991,6 @@ EXPORT_SYMBOL(ethtool_op_set_sg);
EXPORT_SYMBOL(ethtool_op_set_tso);
EXPORT_SYMBOL(ethtool_op_set_tx_csum);
EXPORT_SYMBOL(ethtool_op_set_tx_hw_csum);
+EXPORT_SYMBOL(ethtool_op_set_tx_ipv6_csum);
EXPORT_SYMBOL(ethtool_op_set_ufo);
EXPORT_SYMBOL(ethtool_op_get_ufo);