summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMitch Williams <mitch.a.williams@intel.com>2005-06-23 03:41:00 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-06-23 03:41:00 -0400
commitb2b3d8247951f298897b395599849957ee271c55 (patch)
treee6e5f7698d06d83e861210e6cf427ce3262d78fc /drivers
parenta4936044001694f033fe4ea94d6034d51a6b465c (diff)
downloadlinux-3.10-b2b3d8247951f298897b395599849957ee271c55.tar.gz
linux-3.10-b2b3d8247951f298897b395599849957ee271c55.tar.bz2
linux-3.10-b2b3d8247951f298897b395599849957ee271c55.zip
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>
Diffstat (limited to 'drivers')
-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 325495b8b60..137226d98d4 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;
}