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
-
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