Commit 69f6a0fafcdf0bfe85af182695d6d38f80f9d549

Authored by Jon Mason
Committed by David S. Miller
1 parent 37e20a66db

[NET]: Add ethtool support for NETIF_F_HW_CSUM.

Signed-off-by: Jon Mason <jdmason@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 2 changed files with 12 additions and 1 deletions Side-by-side Diff

include/linux/ethtool.h
... ... @@ -256,6 +256,7 @@
256 256 u32 ethtool_op_get_link(struct net_device *dev);
257 257 u32 ethtool_op_get_tx_csum(struct net_device *dev);
258 258 int ethtool_op_set_tx_csum(struct net_device *dev, u32 data);
  259 +int ethtool_op_set_tx_hw_csum(struct net_device *dev, u32 data);
259 260 u32 ethtool_op_get_sg(struct net_device *dev);
260 261 int ethtool_op_set_sg(struct net_device *dev, u32 data);
261 262 u32 ethtool_op_get_tso(struct net_device *dev);
... ... @@ -29,7 +29,7 @@
29 29  
30 30 u32 ethtool_op_get_tx_csum(struct net_device *dev)
31 31 {
32   - return (dev->features & NETIF_F_IP_CSUM) != 0;
  32 + return (dev->features & (NETIF_F_IP_CSUM | NETIF_F_HW_CSUM)) != 0;
33 33 }
34 34  
35 35 int ethtool_op_set_tx_csum(struct net_device *dev, u32 data)
... ... @@ -42,6 +42,15 @@
42 42 return 0;
43 43 }
44 44  
  45 +int ethtool_op_set_tx_hw_csum(struct net_device *dev, u32 data)
  46 +{
  47 + if (data)
  48 + dev->features |= NETIF_F_HW_CSUM;
  49 + else
  50 + dev->features &= ~NETIF_F_HW_CSUM;
  51 +
  52 + return 0;
  53 +}
45 54 u32 ethtool_op_get_sg(struct net_device *dev)
46 55 {
47 56 return (dev->features & NETIF_F_SG) != 0;
... ... @@ -823,4 +832,5 @@
823 832 EXPORT_SYMBOL(ethtool_op_set_sg);
824 833 EXPORT_SYMBOL(ethtool_op_set_tso);
825 834 EXPORT_SYMBOL(ethtool_op_set_tx_csum);
  835 +EXPORT_SYMBOL(ethtool_op_set_tx_hw_csum);