qlcnic: fix tx csum status
authorSucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Mon, 8 Mar 2010 00:14:45 +0000 (00:14 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Mar 2010 18:45:28 +0000 (10:45 -0800)
Kernel default tx csum function (ethtool_op_get_tx_csum) doesn't show
correct csum status. It takes various FLAGS (NETIF_F_ALL_CSUM) in account
to show tx csum status, which driver doesn't set while disabling tx csum.

Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/qlcnic/qlcnic_ethtool.c

index 8da6ec8c13b9ff193ccae4e878d35d52426031a0..ef12792a88bebbae80ad111ca0004adc48d70510 100644 (file)
@@ -785,6 +785,11 @@ qlcnic_get_ethtool_stats(struct net_device *dev,
        }
 }
 
+static u32 qlcnic_get_tx_csum(struct net_device *dev)
+{
+       return dev->features & NETIF_F_IP_CSUM;
+}
+
 static u32 qlcnic_get_rx_csum(struct net_device *dev)
 {
        struct qlcnic_adapter *adapter = netdev_priv(dev);
@@ -995,6 +1000,7 @@ const struct ethtool_ops qlcnic_ethtool_ops = {
        .set_ringparam = qlcnic_set_ringparam,
        .get_pauseparam = qlcnic_get_pauseparam,
        .set_pauseparam = qlcnic_set_pauseparam,
+       .get_tx_csum = qlcnic_get_tx_csum,
        .set_tx_csum = ethtool_op_set_tx_csum,
        .set_sg = ethtool_op_set_sg,
        .get_tso = qlcnic_get_tso,