summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjfv <jfv@FreeBSD.org>2009-09-04 22:45:07 +0000
committerjfv <jfv@FreeBSD.org>2009-09-04 22:45:07 +0000
commit65def14c86be8dbca8ac75c9d8b96a1304d2b8b3 (patch)
tree613b92428e6c698444676907e87e01bf5776d164
parent4975956f2e300e103617874b15013dda58e1aab0 (diff)
downloadFreeBSD-src-65def14c86be8dbca8ac75c9d8b96a1304d2b8b3.zip
FreeBSD-src-65def14c86be8dbca8ac75c9d8b96a1304d2b8b3.tar.gz
If an interface is brought up with no cable it will experience
watchdog resets, this is due to a missing check for link in the new multiqueue start code. MFC: 3 days
-rw-r--r--sys/dev/ixgbe/ixgbe.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ixgbe/ixgbe.c b/sys/dev/ixgbe/ixgbe.c
index 3c0f5ed..008ded8 100644
--- a/sys/dev/ixgbe/ixgbe.c
+++ b/sys/dev/ixgbe/ixgbe.c
@@ -759,7 +759,8 @@ ixgbe_mq_start_locked(struct ifnet *ifp, struct tx_ring *txr, struct mbuf *m)
struct mbuf *next;
int err = 0;
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
+ if (((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) ||
+ (!adapter->link_active)) {
err = drbr_enqueue(ifp, txr->br, m);
return (err);
}
OpenPOWER on IntegriCloud