diff options
author | 2011-12-09 11:43:41 +0000 | |
---|---|---|
committer | 2011-12-09 11:43:41 +0000 | |
commit | 9fbb0e7da9e748aba29c74d4f7c6a308e2395d03 (patch) | |
tree | ae76f3a95c1884f9d6da7689837bb83ba8afdb04 | |
parent | we don't do intel i/oat and don't set up parameters for the (diff) | |
download | wireguard-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.c | 8 |
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); } |