]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ixgbe: Update ATR to use recorded TX queues instead of CPU for routing
authorAlexander Duyck <alexander.h.duyck@intel.com>
Sat, 11 Jun 2011 01:44:53 +0000 (01:44 +0000)
committerJoe Jin <joe.jin@oracle.com>
Fri, 3 Feb 2012 01:19:57 +0000 (09:19 +0800)
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>
(cherry picked from commit 6440752c872e418452a2cbbf5e73d546affe2b28)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/ixgbe/ixgbe_main.c

index 24475b93af53f6e6f155fa941fb1470ad3475421..4d3fbb691e450ed5fa9f3dbec90498d9054e6359 100644 (file)
@@ -6852,11 +6852,10 @@ static int ixgbe_maybe_stop_tx(struct ixgbe_ring *tx_ring, u16 size)
 static u16 ixgbe_select_queue(struct net_device *dev, struct sk_buff *skb)
 {
        struct ixgbe_adapter *adapter = netdev_priv(dev);
-       int txq = smp_processor_id();
+       int txq = skb_rx_queue_recorded(skb) ? skb_get_rx_queue(skb) :
+                                              smp_processor_id();
 #ifdef IXGBE_FCOE
-       __be16 protocol;
-
-       protocol = vlan_get_protocol(skb);
+       __be16 protocol = vlan_get_protocol(skb);
 
        if (((protocol == htons(ETH_P_FCOE)) ||
            (protocol == htons(ETH_P_FIP))) &&