Subject: Re: Transmit timeout with E1000

From: Eric Dumazet <[email-masked]>
Date: Wed, 11 Jan 2006 15:11:47 +0100

Rogier Wolff a écrit :
> On Wed, Jan 11, 2006 at 02:43:49PM +0100, Erik Mouw wrote:
>> The system only recovers after the Netdev watchdog found out that the
>> transmit timed out. However, the e1000 register dump starts about 4 to
>> 5 seconds earlier: a possible workaround would be to trigger the
>> timeout code path as soon as the register dump starts.
> 
> Found a typo. 
> 
> 	Roger. 
> 
> 
> --- e1000_main.c.orig	2006-01-11 14:53:23.000000000 +0100
> +++ e1000_main.c	2006-01-11 14:53:38.000000000 +0100
> @@ -3449,7 +3449,7 @@
>  	}
>  
>  	for (i = 0; i < E1000_MAX_INTR; i++)
> -		if (unlikely(!adapter->clean_rx(adapter, adapter->rx_ring) &
> +		if (unlikely(!adapter->clean_rx(adapter, adapter->rx_ring) &&
>  		   !e1000_clean_tx_irq(adapter, adapter->tx_ring)))
>  			break;
>  
> 
> 

I believe it's not a typo.

The intention is to call both clean_rx() and e1000_clean_tx_irq(), and break 
of the loop if both said : There was no job pending.

Eric

-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id865&op=click