Re: [LEDE-DEV] Bug - spinlock loop in cns3xxx_eth.c

2016-06-14 Thread Koen Vandeputte
Hi Tim, I fully understand the reason for the check. However, I think the bug has nothing to do with the rotting packet issue. The bug is actually: - eth_schedule_poll() gets called as it's detected that the ring is full after IRQ_enable. (cown flag is set in the previous slot of the ring) --

Re: [LEDE-DEV] Bug - spinlock loop in cns3xxx_eth.c

2016-06-13 Thread Tim Harvey
On Mon, Jun 13, 2016 at 9:12 AM, Koen Vandeputte wrote: > Hi All, > > There seems to be a bug in the function eth_poll() in this driver > > When the RX ring gets full once, the re-schedule is called forever, even > when the ring is empty afterwards. > > > if (!received) { > napi_comple

[LEDE-DEV] Bug - spinlock loop in cns3xxx_eth.c

2016-06-13 Thread Koen Vandeputte
Hi All, There seems to be a bug in the function eth_poll() in this driver When the RX ring gets full once, the re-schedule is called forever, even when the ring is empty afterwards. if (!received) { napi_complete(napi); enable_irq(sw->rx_irq); budget = 0;