i40evf: store ring size in ring structs
authorMitch Williams <mitch.a.williams@intel.com>
Fri, 21 Feb 2014 03:29:12 +0000 (19:29 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 21 Feb 2014 17:38:25 +0000 (12:38 -0500)
Keep the descriptor ring size in the actual ring structs instead of in
the adapter struct. This enables us to use common tx and rx code with
the i40e PF driver.

Also update copyrights.

Change-ID: I2861e599b2b4c76441c062ea14400f4750f54d0e
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Sibai Li <sibai.li@intel.com>
Signed-off-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/i40evf/i40evf.h
drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index c9a5056015beeccd4fcdb2e7ee5872719297137d..ccb43d343543f2a90d456f1989c1fd689116b3fb 100644 (file)
@@ -196,8 +196,6 @@ struct i40evf_adapter {
 
        /* RX */
        struct i40e_ring *rx_rings[I40E_MAX_VSI_QP];
-       int txd_count;
-       int rxd_count;
        u64 hw_csum_rx_error;
        int num_msix_vectors;
        struct msix_entry *msix_entries;
index b0b1f4bf5ac08afb7c6cf62ac76419f36cfbd6c1..8b0db1ce179c5447ce83240098e6c076d6782ed6 100644 (file)
@@ -1,7 +1,7 @@
 /*******************************************************************************
  *
  * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver
- * Copyright(c) 2013 Intel Corporation.
+ * Copyright(c) 2013 - 2014 Intel Corporation.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -241,6 +241,7 @@ static int i40evf_set_ringparam(struct net_device *netdev,
 {
        struct i40evf_adapter *adapter = netdev_priv(netdev);
        u32 new_rx_count, new_tx_count;
+       int i;
 
        if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending))
                return -EINVAL;
@@ -256,12 +257,14 @@ static int i40evf_set_ringparam(struct net_device *netdev,
        new_rx_count = ALIGN(new_rx_count, I40EVF_REQ_DESCRIPTOR_MULTIPLE);
 
        /* if nothing to do return success */
-       if ((new_tx_count == adapter->txd_count) &&
-           (new_rx_count == adapter->rxd_count))
+       if ((new_tx_count == adapter->tx_rings[0]->count) &&
+           (new_rx_count == adapter->rx_rings[0]->count))
                return 0;
 
-       adapter->txd_count = new_tx_count;
-       adapter->rxd_count = new_rx_count;
+       for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) {
+               adapter->tx_rings[0]->count = new_tx_count;
+               adapter->rx_rings[0]->count = new_rx_count;
+       }
 
        if (netif_running(netdev))
                i40evf_reinit_locked(adapter);
index 40a5e78560c74f58f00a6915fd408fbf98f03f8f..d05d5c1bb922917b2ce6ea41ee90ef75b5377dcc 100644 (file)
@@ -2025,9 +2025,6 @@ static void i40evf_init_task(struct work_struct *work)
 
        adapter->flags |= I40EVF_FLAG_RX_CSUM_ENABLED;
 
-       adapter->txd_count = I40EVF_DEFAULT_TXD;
-       adapter->rxd_count = I40EVF_DEFAULT_RXD;
-
        netdev->netdev_ops = &i40evf_netdev_ops;
        i40evf_set_ethtool_ops(netdev);
        netdev->watchdog_timeo = 5 * HZ;