8139cp NAPI race?
From: Stephen Hemminger <hidden>
Date: 2003-10-17 17:26:22
From: Stephen Hemminger <hidden>
Date: 2003-10-17 17:26:22
If I read the documentation (and other drivers) the two lines
in 8139cp.c look backwards:
static int cp_rx_poll (struct net_device *dev, int *budget)
{
...
/* if we did not reach work limit, then we're done with
* this round of polling
*/
if (rx_work) {
if (cpr16(IntrStatus) & cp_rx_intr_mask)
goto rx_status_loop;
<1> cpw16_f(IntrMask, cp_intr_mask);
<2> netif_rx_complete(dev);
return 0; /* done */
}
Isn't re-enable supposed to be after rx_complete to avoid races.