diff options
author | Mike Belopuhov <mikeb@cvs.openbsd.org> | 2011-12-09 11:43:42 +0000 |
---|---|---|
committer | Mike Belopuhov <mikeb@cvs.openbsd.org> | 2011-12-09 11:43:42 +0000 |
commit | 13d1d61e1219f09ceaaf558b01b7df2f2f41898e (patch) | |
tree | 9bfd152f60147bd5cb278327d7fbc688179a7bce /sys/dev/pci/if_ix.c | |
parent | 92a362eeca1eafd4adb9e8b4443bd289d874350f (diff) |
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
Diffstat (limited to 'sys/dev/pci/if_ix.c')
-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); } |