summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_ix.c
diff options
context:
space:
mode:
authorMike Belopuhov <mikeb@cvs.openbsd.org>2011-12-09 11:43:42 +0000
committerMike Belopuhov <mikeb@cvs.openbsd.org>2011-12-09 11:43:42 +0000
commit13d1d61e1219f09ceaaf558b01b7df2f2f41898e (patch)
tree9bfd152f60147bd5cb278327d7fbc688179a7bce /sys/dev/pci/if_ix.c
parent92a362eeca1eafd4adb9e8b4443bd289d874350f (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.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);
}