On Wed, 2006-06-07 at 11:44 -0700, Jeff Moyer wrote:
> That patch locks around the tx clean routine. As such, it doesn't
> prevent
> the problem.
The call to netif_rx_schedule_prep provides locking because it sets the
__LINK_STATE_RX_SCHED bit atomically. The spinlock around
e1000_clean_tx_irq is to protect it from other calls to the transmit
routine, not NAPI.
-Mitch
> > + disable_irq(adapter->pdev->irq);
> > + if
> (likely(netif_rx_schedule_prep(&adapter->polling_netdev[0]))) {
> > + if (spin_trylock(&adapter->tx_queue_lock)) {
> > + e1000_clean_tx_irq(adapter,
> &adapter->tx_ring[0]);
> > + spin_unlock(&adapter->tx_queue_lock);
> > + }
> > + adapter->clean_rx(adapter, adapter->rx_ring,
> > + &budget, netdev->weight);
> > + clear_bit(__LINK_STATE_RX_SCHED,
> > + &adapter->polling_netdev[0].state);
>
> -Jeff
>
>
-
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