summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_mcx.c
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2019-06-11 06:17:24 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2019-06-11 06:17:24 +0000
commit39a9e1cc5c9177cdf43d2a4f9a4825f9a384656f (patch)
tree88b4bff2bce6829325a3cbc75cc4983610cd678a /sys/dev/pci/if_mcx.c
parente1c7e9c08b8a944dca632a62d3c306abd28f05c1 (diff)
if ifiq_input says there's too much pressure, tell the rxr we're livelocked
ok jmatthew@
Diffstat (limited to 'sys/dev/pci/if_mcx.c')
-rw-r--r--sys/dev/pci/if_mcx.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/pci/if_mcx.c b/sys/dev/pci/if_mcx.c
index f18c70be775..90d9c4d1baf 100644
--- a/sys/dev/pci/if_mcx.c
+++ b/sys/dev/pci/if_mcx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_mcx.c,v 1.24 2019/06/11 03:55:16 jmatthew Exp $ */
+/* $OpenBSD: if_mcx.c,v 1.25 2019/06/11 06:17:23 dlg Exp $ */
/*
* Copyright (c) 2017 David Gwynne <dlg@openbsd.org>
@@ -5758,10 +5758,11 @@ mcx_process_cq(struct mcx_softc *sc, struct mcx_cq *cq)
if (rxfree > 0) {
if_rxr_put(&sc->sc_rxr, rxfree);
+ if (ifiq_input(&sc->sc_ac.ac_if.if_rcv, &ml))
+ if_rxr_livelocked(&sc->sc_rxr);
+
mcx_rx_fill(sc);
/* timeout if full somehow */
-
- if_input(&sc->sc_ac.ac_if, &ml);
}
if (txfree > 0) {
sc->sc_tx_cons += txfree;