--- linux-2.6.5-7.244/drivers/net/e1000/e1000_main.c.orgi 2006-01-12 22:03:43.147940808 -0600 +++ linux-2.6.5-7.244/drivers/net/e1000/e1000_main.c 2006-01-12 22:03:38.000000000 -0600 @@ -441,9 +441,14 @@ e1000_up(struct e1000_adapter *adapter) e1000_configure_tx(adapter); e1000_setup_rctl(adapter); e1000_configure_rx(adapter); - for (i = 0; i < adapter->num_queues; i++) - adapter->alloc_rx_buf(adapter, &adapter->rx_ring[i], - adapter->rx_ring[i].count); + /* call E1000_DESC_UNUSED which always leaves + * at least 1 descriptor unused to make sure + * next_to_use != next_to_clean */ + for (i = 0; i < adapter->num_rx_queues; i++) { + struct e1000_rx_ring *ring = &adapter->rx_ring[i]; + adapter->alloc_rx_buf(adapter, ring, + E1000_DESC_UNUSED(ring)); + } #ifdef CONFIG_PCI_MSI if(adapter->hw.mac_type > e1000_82547_rev_2) {