svn commit: r193563 - user/kmacy/releng_7_2_fcs/sys/dev/cxgb

Kip Macy kmacy at FreeBSD.org
Sat Jun 6 03:22:43 UTC 2009


Author: kmacy
Date: Sat Jun  6 03:22:43 2009
New Revision: 193563
URL: http://svn.freebsd.org/changeset/base/193563

Log:
  consolidate dequeue functionality and sanity check nextpkt

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	Sat Jun  6 02:26:23 2009	(r193562)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c	Sat Jun  6 03:22:43 2009	(r193563)
@@ -1514,6 +1514,12 @@ cxgb_dequeue_chain(struct sge_qset *qs)
 	struct mbuf *m, *m_head, *m_tail;
 	struct coalesce_info ci;
 
+	if (qs->port->adapter->tunq_coalesce) {
+		m = TXQ_RING_DEQUEUE(qs);
+		if (m != NULL && m->m_nextpkt != NULL)
+			panic("dequeued regular packet with nextpkt set!");
+	}
+
 	m_head = m_tail = NULL;
 	ci.count = ci.nbytes = 0;
 	do {
@@ -1523,6 +1529,7 @@ cxgb_dequeue_chain(struct sge_qset *qs)
 		} else if (m != NULL) {
 			m_tail->m_nextpkt = m;
 			m_tail = m;
+			m->m_nextpkt = NULL;
 		}
 	} while (m != NULL);
 	if (ci.count > 7)
@@ -1540,7 +1547,6 @@ cxgb_start_locked(struct sge_qset *qs)
 	struct port_info *pi = qs->port;
 	struct adapter *sc = pi->adapter;
 	struct ifnet *ifp = pi->ifp;
-	uint64_t *coal = &sc->tunq_coalesce;
 	avail = txq->size - txq->in_use - 4;
 	txmax = min(TX_START_MAX_DESC, avail);
 
@@ -1550,9 +1556,7 @@ cxgb_start_locked(struct sge_qset *qs)
 		reclaim_completed_tx(qs, (TX_ETH_Q_SIZE>>4), TXQ_ETH);
 		check_pkt_coalesce(qs);
 
-		m_head = (*coal) ? cxgb_dequeue_chain(qs) : TXQ_RING_DEQUEUE(qs); 
-		
-		if (m_head == NULL)
+		if ((m_head = cxgb_dequeue(qs)) == NULL)
 			break;
 		/*
 		 *  Encapsulation can modify our pointer, and or make it


More information about the svn-src-user mailing list