summaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe.h
diff options
context:
space:
mode:
authorAlexander Duyck2010-11-17 04:26:55 +0100
committerJeff Kirsher2010-11-17 04:26:55 +0100
commit33cf09c9586a0dce472ecd2aac13e8140c9ed1a1 (patch)
treeadd9e26fdac5fc681b785f56c88cb4b609bc0d90 /drivers/net/ixgbe/ixgbe.h
parentixgbe: move adapter into pci_dev driver data instead of netdev (diff)
downloadkernel-qcow2-linux-33cf09c9586a0dce472ecd2aac13e8140c9ed1a1.tar.gz
kernel-qcow2-linux-33cf09c9586a0dce472ecd2aac13e8140c9ed1a1.tar.xz
kernel-qcow2-linux-33cf09c9586a0dce472ecd2aac13e8140c9ed1a1.zip
ixgbe: move CPU variable from ring into q_vector, add ring->q_vector
This is the start of work to sort out what belongs in the rings and what belongs in the q_vector. Items like the CPU variable for make much more sense in the q_vector since the CPU is a per-interrupt thing rather than a per ring thing. I also added a back-pointer from the ring to the q_vector. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe.h')
-rw-r--r--drivers/net/ixgbe/ixgbe.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/ixgbe/ixgbe.h b/drivers/net/ixgbe/ixgbe.h
index dc4b97e5777f..e87b0ffd5832 100644
--- a/drivers/net/ixgbe/ixgbe.h
+++ b/drivers/net/ixgbe/ixgbe.h
@@ -183,11 +183,6 @@ struct ixgbe_ring {
unsigned int total_bytes;
unsigned int total_packets;
-#ifdef CONFIG_IXGBE_DCA
- /* cpu for tx queue */
- int cpu;
-#endif
-
u16 work_limit; /* max work per interrupt */
u16 reg_idx; /* holds the special value that gets
* the hardware register offset
@@ -206,6 +201,7 @@ struct ixgbe_ring {
unsigned int size; /* length in bytes */
dma_addr_t dma; /* phys. address of descriptor ring */
struct rcu_head rcu;
+ struct ixgbe_q_vector *q_vector; /* back-pointer to host q_vector */
} ____cacheline_internodealigned_in_smp;
enum ixgbe_ring_f_enum {
@@ -251,6 +247,9 @@ struct ixgbe_q_vector {
unsigned int v_idx; /* index of q_vector within array, also used for
* finding the bit in EICR and friends that
* represents the vector for this ring */
+#ifdef CONFIG_IXGBE_DCA
+ int cpu; /* CPU for DCA */
+#endif
struct napi_struct napi;
DECLARE_BITMAP(rxr_idx, MAX_RX_QUEUES); /* Rx ring indices */
DECLARE_BITMAP(txr_idx, MAX_TX_QUEUES); /* Tx ring indices */