Thread (25 messages) 25 messages, 7 authors, 2007-07-31

Re: [PATCH RFC]: napi_struct V4

From: David Miller <davem@davemloft.net>
Date: 2007-07-26 00:37:32

From: Stephen Hemminger <redacted>
Date: Wed, 25 Jul 2007 09:56:54 +0100
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.

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've made these fixes to my tree, thanks Stephen.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help