summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/mscc/ocelot_board.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-03-31 17:44:53 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2020-03-31 17:44:53 +0300
commitcf39d37539068d53e015d8b4f1dcf42c65306b0d (patch)
treec8dcbbc3a5c92beee82e83e2a2b597f328a919a6 /drivers/net/ethernet/mscc/ocelot_board.c
parent830948eb68265ac7f3f364aa9801550feafec0d6 (diff)
parent463050599742a89e0508355e626e032e8d0dab8d (diff)
downloadlinux-cf39d37539068d53e015d8b4f1dcf42c65306b0d.tar.xz
Merge tag 'kvmarm-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
KVM/arm updates for Linux 5.7 - GICv4.1 support - 32bit host removal
Diffstat (limited to 'drivers/net/ethernet/mscc/ocelot_board.c')
-rw-r--r--drivers/net/ethernet/mscc/ocelot_board.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mscc/ocelot_board.c b/drivers/net/ethernet/mscc/ocelot_board.c
index b38820849faa..1135a18019c7 100644
--- a/drivers/net/ethernet/mscc/ocelot_board.c
+++ b/drivers/net/ethernet/mscc/ocelot_board.c
@@ -114,6 +114,14 @@ static irqreturn_t ocelot_xtr_irq_handler(int irq, void *arg)
if (err != 4)
break;
+ /* At this point the IFH was read correctly, so it is safe to
+ * presume that there is no error. The err needs to be reset
+ * otherwise a frame could come in CPU queue between the while
+ * condition and the check for error later on. And in that case
+ * the new frame is just removed and not processed.
+ */
+ err = 0;
+
ocelot_parse_ifh(ifh, &info);
ocelot_port = ocelot->ports[info.port];