Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jun 2009 04:42:47 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r194413 - user/kmacy/releng_7_2_fcs/sys/dev/cxgb
Message-ID:  <200906180442.n5I4glV9097797@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Thu Jun 18 04:42:47 2009
New Revision: 194413
URL: http://svn.freebsd.org/changeset/base/194413

Log:
  validate link before trying to send packets

Modified:
  user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c

Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c	Thu Jun 18 02:51:43 2009	(r194412)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c	Thu Jun 18 04:42:47 2009	(r194413)
@@ -1645,7 +1645,10 @@ cxgb_start_locked(struct sge_qset *qs)
 
 	if (qs->qs_flags & (QS_FLUSHING|QS_TIMEOUT))
 		reclaim_completed_tx(qs, 0, TXQ_ETH);
-		
+
+	if (!pi->link_config.link_ok)
+		return;
+
 	TXQ_LOCK_ASSERT(qs);
 	while ((txq->in_use - in_use_init < txmax) &&
 	    !TXQ_RING_EMPTY(qs) &&
@@ -1674,7 +1677,8 @@ cxgb_start_locked(struct sge_qset *qs)
 
 		m_head = NULL;
 	}
-	if (!TXQ_RING_EMPTY(qs) && callout_pending(&txq->txq_timer) == 0)
+	if (!TXQ_RING_EMPTY(qs) && callout_pending(&txq->txq_timer) == 0 &&
+	    pi->link_config.link_ok)
 		callout_reset_on(&txq->txq_timer, 1, cxgb_tx_timeout,
 		    qs, txq->txq_timer.c_cpu);
 	if (m_head != NULL)
@@ -1745,7 +1749,8 @@ cxgb_transmit(struct ifnet *ifp, struct 
 	struct port_info *pi = ifp->if_softc;
 	int error, qidx = pi->first_qset;
 
-	if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
+	if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0
+	    ||(!pi->link_config.link_ok)) {
 		m_freem(m);
 		return (0);
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906180442.n5I4glV9097797>