Hi All I found an issue with Realtek 8139 driver (2.6.10 branch) at high bi-directional traffic. On transmit timeout, driver's timeout callback re-enables the receive interrupt. On the next receive interrupt, the ISR disables the receive interrupt "only" when the receive poll task is not active. But the poll task is actually active and hence it doesn't disable the receive interrupt. So the ISR returns without clearing the receive interrupt. This un-serviced receive interrupt brings the system into hung state.
My understanding here is, on receive interrupt the ISR should disable the receive interrupt irrespective of the polling task's state (active or inactive). I changed the code (as shown below) and it works perfectly. Is this a known issue? If so, is there a fix already available? Also, we get frequent TX timeouts during high rate of traffic. What could be the reason for this frequent TX timeouts? --- old/8139too.c 2006-11-09 11:49:25.000000000 +0530 +++ new/8139too.c 2006-11-09 11:50:02.000000000 +0530 @@ -2200,8 +2200,8 @@ /* Receive packets are processed by poll routine. If not running start it now. */ if (status & RxAckBits){ - if (netif_rx_schedule_prep(dev)) { RTL_W16_F (IntrMask, rtl8139_norx_intr_mask); + if (netif_rx_schedule_prep(dev)) { __netif_rx_schedule (dev); } } Thanks Mansoor - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html