[tulip] Bug in tulip_interrupt?

Bhavesh P. Davda bhavesh@avaya.com
Tue Feb 19 17:59:14 2002


I think there is a bug in tulip_interrupt, where in if you get a TxIntr
interrupt as indicated by CSR5, and if the status register indicated an
error, the status register never gets cleared, and every frame
transmitted after that using that ring buffer entry will be marked as a
transmit error.

The fix may be to clear the status register in the loop:

--- old/tulip.c Tue Feb 19 15:51:50 2002
+++ new/tulip.c Tue Feb 19 15:54:30 2002
@@ -2740,6 +2740,8 @@
                                        tp->stats.tx_packets++;
                                }
 
+                               /* Clear the status register */
+                               tp->tx_ring[entry].status =
cpu_to_le32(DescOwned);
                                /* Free the original skb. */
                                dev_free_skb_irq(tp->tx_skbuff[entry]);
                                tp->tx_skbuff[entry] = 0;


- Bhavesh
-- 
Bhavesh P. Davda
Avaya Inc
Room B3-B16                     E-mail : bhavesh@avaya.com
1300 West 120th Avenue          Phone  : (303) 538-4438
Westminster, CO 80234           Fax    : (303) 538-3155