aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2011-06-10 21:44:53 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-07-22 01:54:19 -0400
commit6440752c872e418452a2cbbf5e73d546affe2b28 (patch)
tree3870081c04454171fb3041c71dd2c50d28ee2425 /drivers/net
parenta14bc2bb7075e59be635a2470dc0a32c5a0e8e21 (diff)
ixgbe: Update ATR to use recorded TX queues instead of CPU for routing
This change is meant to update ATR so that it will use the recorded RX queue instead of the CPU in the case of routing. This change is meant to help ixgbe default behavior to more closely match that of the kernel. 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')
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index de307965dfee..f05ddf31a19f 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -6795,11 +6795,10 @@ static int ixgbe_maybe_stop_tx(struct ixgbe_ring *tx_ring, u16 size)
6795static u16 ixgbe_select_queue(struct net_device *dev, struct sk_buff *skb) 6795static u16 ixgbe_select_queue(struct net_device *dev, struct sk_buff *skb)
6796{ 6796{
6797 struct ixgbe_adapter *adapter = netdev_priv(dev); 6797 struct ixgbe_adapter *adapter = netdev_priv(dev);
6798 int txq = smp_processor_id(); 6798 int txq = skb_rx_queue_recorded(skb) ? skb_get_rx_queue(skb) :
6799 smp_processor_id();
6799#ifdef IXGBE_FCOE 6800#ifdef IXGBE_FCOE
6800 __be16 protocol; 6801 __be16 protocol = vlan_get_protocol(skb);
6801
6802 protocol = vlan_get_protocol(skb);
6803 6802
6804 if (((protocol == htons(ETH_P_FCOE)) || 6803 if (((protocol == htons(ETH_P_FCOE)) ||
6805 (protocol == htons(ETH_P_FIP))) && 6804 (protocol == htons(ETH_P_FIP))) &&