--- drivers/net/8139too.c.orig Wed Jul 4 14:34:27 2001 +++ drivers/net/8139too.c Sat Jul 14 02:34:50 2001 @@ -1732,7 +1732,6 @@ RTL_W32_F (TxAddr0 + (entry * 4), dma_addr); RTL_W32_F (TxStatus0 + (entry * sizeof (u32)), tp->tx_flag | (skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN)); - spin_unlock_irq(&tp->lock); dev->trans_start = jiffies; @@ -1740,6 +1739,7 @@ mb(); if ((tp->cur_tx - NUM_TX_DESC) == tp->dirty_tx) netif_stop_queue (dev); + spin_unlock_irq(&tp->lock); DPRINTK ("%s: Queued Tx packet at %p size %u to slot %d.\n", dev->name, skb->data, skb->len, entry);