Subject: Re: [PATCH RFC]: napi_struct V4

From: Jeff Garzik <[email-masked]>
Date: Wed, 25 Jul 2007 21:55:08 -0400

Stephen Hemminger wrote:
> The usage of NAPI on 8139cp and 8139too seems dodgy;
> these drivers expect this to work:
> 
> 		local_irq_save(flags);
> 		cpw16_f(IntrMask, cp_intr_mask);
> 		__netif_rx_complete(dev);
> 		local_irq_restore(flags);
> 
> It works on SMP only because if poll races with IRQ, 
> the IRQ is not masked or cleared so the IRQ will get restarted.

Expect?  This _does_ work on both UP and SMP.

> Better would be to change it to:
> 		spin_lock_irqsave(&cp->lock, flags);
> 		cpw16_f(IntrMask, cp_intr_mask);
> 		__netif_rx_complete(dev);
> 		spin_unlock_irqrestore(&cp->lock, flags);
> 
> Which actually is same code on UP.

I'm missing your point?

You claim local_irq_save() works only on SMP, then suggest a solution 
that you agree produces the same result?

I don't see any logic to your request, only added overhead for no reason.

	Jeff