qlcnic: remove private LRO flag
authorAmit Kumar Salecha <amit.salecha@qlogic.com>
Thu, 7 Oct 2010 23:46:07 +0000 (23:46 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Oct 2010 20:59:09 +0000 (13:59 -0700)
LRO was not getting enable after interface down/up.

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
drivers/net/qlcnic/qlcnic_hw.c
drivers/net/qlcnic/qlcnic_main.c

index 0181301..e07adb1 100644 (file)
@@ -865,7 +865,7 @@ static int qlcnic_set_rx_csum(struct net_device *dev, u32 data)
                return 0;
        }
 
-       if (adapter->flags & QLCNIC_LRO_ENABLED) {
+       if (dev->features & NETIF_F_LRO) {
                if (qlcnic_config_hw_lro(adapter, QLCNIC_LRO_DISABLED))
                        return -EIO;
 
@@ -1062,7 +1062,7 @@ static int qlcnic_set_flags(struct net_device *netdev, u32 data)
                return -EINVAL;
        }
 
-       if ((data & ETH_FLAG_LRO) && (adapter->flags & QLCNIC_LRO_ENABLED))
+       if ((data & ETH_FLAG_LRO) && (netdev->features & NETIF_F_LRO))
                return 0;
 
        if (data & ETH_FLAG_LRO) {
index 9d3e16d..7f1f9b4 100644 (file)
@@ -582,9 +582,6 @@ int qlcnic_config_hw_lro(struct qlcnic_adapter *adapter, int enable)
        u64 word;
        int rv;
 
-       if ((adapter->flags & QLCNIC_LRO_ENABLED) == enable)
-               return 0;
-
        memset(&req, 0, sizeof(struct qlcnic_nic_req));
 
        req.qhdr = cpu_to_le64(QLCNIC_HOST_REQUEST << 23);
@@ -599,8 +596,6 @@ int qlcnic_config_hw_lro(struct qlcnic_adapter *adapter, int enable)
                dev_err(&adapter->netdev->dev,
                        "Could not send configure hw lro request\n");
 
-       adapter->flags ^= QLCNIC_LRO_ENABLED;
-
        return rv;
 }
 
index 9b0acfb..e3c1b80 100644 (file)
@@ -657,8 +657,6 @@ qlcnic_check_options(struct qlcnic_adapter *adapter)
        dev_info(&pdev->dev, "firmware v%d.%d.%d\n",
                        fw_major, fw_minor, fw_build);
 
-       adapter->flags &= ~QLCNIC_LRO_ENABLED;
-
        if (adapter->ahw.port_type == QLCNIC_XGBE) {
                adapter->num_rxd = DEFAULT_RCV_DESCRIPTORS_10G;
                adapter->num_jumbo_rxd = MAX_JUMBO_RCV_DESCRIPTORS_10G;