summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitch Williams <mitch.a.williams@intel.com>2005-06-21 13:21:42 -0700
committerChris Wright <chrisw@osdl.org>2005-06-29 16:00:37 -0700
commit26b1062c23e46c111f5e86bc8ce4d5007805b51a (patch)
tree655e172be106d92b5fe33ba951867043a61a2108
parent986bd4301425ab01934f8efe08ed9433b45492bb (diff)
downloadkernel-common-26b1062c23e46c111f5e86bc8ce4d5007805b51a.tar.gz
kernel-common-26b1062c23e46c111f5e86bc8ce4d5007805b51a.tar.bz2
kernel-common-26b1062c23e46c111f5e86bc8ce4d5007805b51a.zip
[PATCH] 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>
-rw-r--r--drivers/net/e1000/e1000_main.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 325495b8b60c..137226d98d47 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -2307,6 +2307,7 @@ e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
tso = e1000_tso(adapter, skb);
if (tso < 0) {
dev_kfree_skb_any(skb);
+ spin_unlock_irqrestore(&adapter->tx_lock, flags);
return NETDEV_TX_OK;
}