diff -r dbe4a4219aa5 -r c5757cebfaea devices/e1000/e1000_main-2.6.20-ethercat.c --- a/devices/e1000/e1000_main-2.6.20-ethercat.c Mon Jul 28 08:16:01 2008 +0000 +++ b/devices/e1000/e1000_main-2.6.20-ethercat.c Mon Jul 28 08:30:44 2008 +0000 @@ -3450,7 +3450,9 @@ /* need: count + 2 desc gap to keep tail from touching * head, otherwise try next time */ if (unlikely(e1000_maybe_stop_tx(netdev, tx_ring, count + 2))) { - spin_unlock_irqrestore(&tx_ring->tx_lock, flags); + if (!adapter->ecdev) { + spin_unlock_irqrestore(&tx_ring->tx_lock, flags); + } return NETDEV_TX_BUSY; }