diff options
author | Michael Chan <mchan@broadcom.com> | 2007-07-14 19:07:52 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-07-14 19:07:52 -0700 |
commit | 6460d948f3ebf7d5040328a60a0ab7221f69945b (patch) | |
tree | d7c2a7eda9f20a03698df32bdc4677ca0c2479d5 /net | |
parent | febca281f677a775c61cd0572c2f35e4ead9e7d5 (diff) | |
download | op-kernel-dev-6460d948f3ebf7d5040328a60a0ab7221f69945b.zip op-kernel-dev-6460d948f3ebf7d5040328a60a0ab7221f69945b.tar.gz |
[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.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 8d5e5a0..0b531e9 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); |