diff -r 352a471d388f -r 04bcd38cf8dc devices/e1000/e1000_main-2.6.20-ethercat.c --- a/devices/e1000/e1000_main-2.6.20-ethercat.c Mon Jul 28 08:17:01 2008 +0000 +++ b/devices/e1000/e1000_main-2.6.20-ethercat.c Mon Jul 28 08:28:42 2008 +0000 @@ -3446,7 +3446,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; }