diff options
author | David Gwynne <dlg@cvs.openbsd.org> | 2019-06-11 06:17:24 +0000 |
---|---|---|
committer | David Gwynne <dlg@cvs.openbsd.org> | 2019-06-11 06:17:24 +0000 |
commit | 39a9e1cc5c9177cdf43d2a4f9a4825f9a384656f (patch) | |
tree | 88b4bff2bce6829325a3cbc75cc4983610cd678a /sys/dev/pci/if_mcx.c | |
parent | e1c7e9c08b8a944dca632a62d3c306abd28f05c1 (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.c | 7 |
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; |