On Wed, Jan 11, 2006 at 03:11:47PM +0100, Eric Dumazet wrote: > 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.
Although (one of) the prototypes state(s) that it returns a boolean, it is valid C to return the number of items pending. And if one reports "2 more pending" and the other reports "1 more pending", the "&" between the two becomes 2 & 1 => 0 / FALSE, while 2 && 1 => TRUE. I consider this a low prio typo, not likely to be a bug "right now", but it is inviting someone to make it into a bug later on. Roger. -- +-- Rogier Wolff -- www.harddisk-recovery.nl -- 0800 220 20 20 -- | Files foetsie, bestanden kwijt, alle data weg?! | Blijf kalm en neem contact op met Harddisk-recovery.nl! - 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