]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
a missed .32 patch
authorGreg Kroah-Hartman <gregkh@suse.de>
Sat, 3 Jul 2010 02:27:44 +0000 (19:27 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 3 Jul 2010 02:27:44 +0000 (19:27 -0700)
review-2.6.32/ixgbe-fix-return-of-invalid-txq.patch [new file with mode: 0644]
review-2.6.32/series

diff --git a/review-2.6.32/ixgbe-fix-return-of-invalid-txq.patch b/review-2.6.32/ixgbe-fix-return-of-invalid-txq.patch
new file mode 100644 (file)
index 0000000..10151ae
--- /dev/null
@@ -0,0 +1,49 @@
+From fdd3d631cddad20ad9d3e1eb7dbf26825a8a121f Mon Sep 17 00:00:00 2001
+From: Krishna Kumar <krkumar2@in.ibm.com>
+Date: Wed, 3 Feb 2010 13:13:10 +0000
+Subject: ixgbe: Fix return of invalid txq
+
+From: Krishna Kumar <krkumar2@in.ibm.com>
+
+commit fdd3d631cddad20ad9d3e1eb7dbf26825a8a121f upstream.
+
+a developer had complained of getting lots of warnings:
+
+"eth16 selects TX queue 98, but real number of TX queues is 64"
+
+http://www.mail-archive.com/e1000-devel@lists.sourceforge.net/msg02200.html
+
+As there was no follow up on that bug, I am submitting this
+patch assuming that the other return points will not return
+invalid txq's, and also that this fixes the bug (not tested).
+
+Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com>
+Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
+Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
+Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/net/ixgbe/ixgbe_main.c |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/ixgbe/ixgbe_main.c
++++ b/drivers/net/ixgbe/ixgbe_main.c
+@@ -5241,9 +5241,13 @@ static int ixgbe_maybe_stop_tx(struct ne
+ 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();
+-      if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE)
+-              return smp_processor_id();
++      if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE) {
++              while (unlikely(txq >= dev->real_num_tx_queues))
++                      txq -= dev->real_num_tx_queues;
++              return txq;
++      }
+       if (adapter->flags & IXGBE_FLAG_DCB_ENABLED)
+               return (skb->vlan_tci & IXGBE_TX_FLAGS_VLAN_PRIO_MASK) >> 13;
index db1415beecd48d8e11bf0c23a6559360e3165d9b..277ae9832082e8543a567d75cb08a3544e6d105c 100644 (file)
@@ -1,3 +1,4 @@
+ixgbe-fix-return-of-invalid-txq.patch
 oprofile-x86-fix-uninitialized-counter-usage-during-cpu-hotplug.patch
 oprofile-remove-double-ring-buffering.patch
 cpumask-fix-compat-getaffinity.patch