macb: restore wrap bit when performing underrun cleanup
[linux-2.6.git] / drivers / net / macb.c
index 0fcdc25..dc4e305 100644 (file)
@@ -322,6 +322,9 @@ static void macb_tx(struct macb *bp)
                for (i = 0; i < TX_RING_SIZE; i++)
                        bp->tx_ring[i].ctrl = MACB_BIT(TX_USED);
 
+               /* Add wrap bit */
+               bp->tx_ring[TX_RING_SIZE - 1].ctrl |= MACB_BIT(TX_WRAP);
+
                /* free transmit buffer in upper layer*/
                for (tail = bp->tx_tail; tail != head; tail = NEXT_TX(tail)) {
                        struct ring_info *rp = &bp->tx_skb[tail];