]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
added e1000 spinlock fix, forwarded from jgarzik
authorChris Wright <chrisw@osdl.org>
Wed, 22 Jun 2005 22:50:07 +0000 (15:50 -0700)
committerChris Wright <chrisw@osdl.org>
Wed, 22 Jun 2005 22:50:07 +0000 (15:50 -0700)
queue/e1000-fix-spinlock-bug.patch [new file with mode: 0644]
queue/series

diff --git a/queue/e1000-fix-spinlock-bug.patch b/queue/e1000-fix-spinlock-bug.patch
new file mode 100644 (file)
index 0000000..fa97ba0
--- /dev/null
@@ -0,0 +1,25 @@
+From SRS0=rqZ1=U3=vger.kernel.org=netdev-owner@bounce2.pobox.com Tue Jun 21 13:36:24 2005
+Date: Tue, 21 Jun 2005 13:21:42 -0700
+From: Mitch Williams <mitch.a.williams@intel.com>
+To: netdev@vger.kernel.org
+Subject: [PATCH 2.6.12] e1000: fix spinlock bug
+
+This patch fixes an obvious and nasty bug where we could exit the transmit
+routine while holding tx_lock.
+
+Signed-off-by:  Mitch Williams <mitch.a.williams@intel.com>
+Signed-off-by:  Chris Wright <chrisw@osdl.org>
+---
+
+
+diff -urpN -X dontdiff linux-2.6.12-clean/drivers/net/e1000/e1000_main.c linux-2.6.12/drivers/net/e1000/e1000_main.c
+--- linux-2.6.12-clean/drivers/net/e1000/e1000_main.c  2005-06-17 12:48:29.000000000 -0700
++++ linux-2.6.12/drivers/net/e1000/e1000_main.c        2005-06-21 10:42:29.000000000 -0700
+@@ -2307,6 +2307,7 @@ e1000_xmit_frame(struct sk_buff *skb, st
+       tso = e1000_tso(adapter, skb);
+       if (tso < 0) {
+               dev_kfree_skb_any(skb);
++              spin_unlock_irqrestore(&adapter->tx_lock, flags);
+               return NETDEV_TX_OK;
+       }
+
index 32f1e0fe56cceccd414a1c33878243b679fb6677..f5013e4f4f1ef82b9f57d9be51dc72c62299fbaa 100644 (file)
@@ -1,3 +1,4 @@
 pci-driver-typo-fix.patch
 qla2xxx-init-fixes.patch
 fix-remap_pte_range-BUG.patch
+e1000-fix-spinlock-bug.patch