summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormikeb <mikeb@openbsd.org>2011-12-09 11:43:41 +0000
committermikeb <mikeb@openbsd.org>2011-12-09 11:43:41 +0000
commit9fbb0e7da9e748aba29c74d4f7c6a308e2395d03 (patch)
treeae76f3a95c1884f9d6da7689837bb83ba8afdb04
parentwe don't do intel i/oat and don't set up parameters for the (diff)
downloadwireguard-openbsd-9fbb0e7da9e748aba29c74d4f7c6a308e2395d03.tar.xz
wireguard-openbsd-9fbb0e7da9e748aba29c74d4f7c6a308e2395d03.zip
we need to always schedule another rx ring refill callout
in case we fail to do it at the spot. prevents rx ring lockups under high load. ok dlg
-rw-r--r--sys/dev/pci/if_ix.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/dev/pci/if_ix.c b/sys/dev/pci/if_ix.c
index c2a6964cc45..a445e636135 100644
--- a/sys/dev/pci/if_ix.c
+++ b/sys/dev/pci/if_ix.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ix.c,v 1.56 2011/11/27 16:14:31 mikeb Exp $ */
+/* $OpenBSD: if_ix.c,v 1.57 2011/12/09 11:43:41 mikeb Exp $ */
/******************************************************************************
@@ -961,8 +961,8 @@ ixgbe_legacy_irq(void *arg)
/* Advance the Rx Queue "Tail Pointer" */
IXGBE_WRITE_REG(&sc->hw, IXGBE_RDT(que->rxr->me),
que->rxr->last_desc_filled);
- } else if (que->rxr->rx_ndescs < 2)
- timeout_add(&sc->rx_refill, 0);
+ } else
+ timeout_add(&sc->rx_refill, 1);
}
if (ifp->if_flags & IFF_RUNNING && !IFQ_IS_EMPTY(&ifp->if_snd))
@@ -2744,7 +2744,7 @@ ixgbe_rxrefill(void *xsc)
/* Advance the Rx Queue "Tail Pointer" */
IXGBE_WRITE_REG(&sc->hw, IXGBE_RDT(que->rxr->me),
que->rxr->last_desc_filled);
- } else if (que->rxr->rx_ndescs < 2)
+ } else
timeout_add(&sc->rx_refill, 1);
splx(s);
}