[04/07] e1000: fix spinlock bug

From: Chris Wright
Date: Mon Jun 27 2005 - 18:20:14 EST


-stable review patch. If anyone has any objections, please let us know.

------------------


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@xxxxxxxxx>
Signed-off-by: Chris Wright <chrisw@xxxxxxxx>
---


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;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/