Commit 69f6a0fafcdf0bfe85af182695d6d38f80f9d549
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); |
net/core/ethtool.c
... | ... | @@ -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); |