From 9abcc86223c45c9b175a59f5c1f45dca7aa7a087 Mon Sep 17 00:00:00 2001 From: Chris Wright Date: Wed, 22 Jun 2005 15:50:07 -0700 Subject: [PATCH] added e1000 spinlock fix, forwarded from jgarzik --- queue/e1000-fix-spinlock-bug.patch | 25 +++++++++++++++++++++++++ queue/series | 1 + 2 files changed, 26 insertions(+) create mode 100644 queue/e1000-fix-spinlock-bug.patch diff --git a/queue/e1000-fix-spinlock-bug.patch b/queue/e1000-fix-spinlock-bug.patch new file mode 100644 index 00000000000..fa97ba04cb0 --- /dev/null +++ b/queue/e1000-fix-spinlock-bug.patch @@ -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 +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 +Signed-off-by: Chris Wright +--- + + +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; + } + diff --git a/queue/series b/queue/series index 32f1e0fe56c..f5013e4f4f1 100644 --- a/queue/series +++ b/queue/series @@ -1,3 +1,4 @@ pci-driver-typo-fix.patch qla2xxx-init-fixes.patch fix-remap_pte_range-BUG.patch +e1000-fix-spinlock-bug.patch -- 2.47.3