]> git.baikalelectronics.ru Git - kernel.git/commit
net: renesas: ravb: Fix a stuck issue when a lot of frames are received
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Wed, 21 Apr 2021 04:52:46 +0000 (13:52 +0900)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Apr 2021 17:56:37 +0000 (10:56 -0700)
commita6690e25d9347a9075754605ede4a89046d1c9fc
treed3964e97c60aaa469f775e8ab775594d895dc7a0
parentc96c8c69d3e2dc0875e82bed5c05605eee2e420c
net: renesas: ravb: Fix a stuck issue when a lot of frames are received

When a lot of frames were received in the short term, the driver
caused a stuck of receiving until a new frame was received. For example,
the following command from other device could cause this issue.

    $ sudo ping -f -l 1000 -c 1000 <this driver's ipaddress>

The previous code always cleared the interrupt flag of RX but checks
the interrupt flags in ravb_poll(). So, ravb_poll() could not call
ravb_rx() in the next time until a new RX frame was received if
ravb_rx() returned true. To fix the issue, always calls ravb_rx()
regardless the interrupt flags condition.

Fixes: bfafa9ee6042 ("Renesas Ethernet AVB driver proper")
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/renesas/ravb_main.c