Already reschedule when 1 or more frames came in.
Checking for a full queue could produce a re-schedule loop as
the checked RX ring location could contain undefined values
depending on activity in previous loops.
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
enable_irq(sw->rx_irq);
budget = 0;
- /* if rx descriptors are full schedule another poll */
- if (rx_ring->desc[(i-1) & (RX_DESCS-1)].cown)
+ /* If 1 or more frames came in during IRQ enable, re-schedule */
+ if (rx_ring->desc[i].cown)
eth_schedule_poll(sw);
}