svn commit: r193623 - user/kmacy/releng_7_2_fcs/sys/dev/cxgb
Kip Macy
kmacy at FreeBSD.org
Sun Jun 7 06:46:29 UTC 2009
Author: kmacy
Date: Sun Jun 7 06:46:27 2009
New Revision: 193623
URL: http://svn.freebsd.org/changeset/base/193623
Log:
- simplify get_packet
- simplify cxgb_dequeue
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 Sun Jun 7 06:28:55 2009 (r193622)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Sun Jun 7 06:46:27 2009 (r193623)
@@ -293,11 +293,8 @@ cxgb_dequeue(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!");
- }
+ if (qs->port->adapter->tunq_coalesce == 0)
+ return TXQ_RING_DEQUEUE(qs);
m_head = m_tail = NULL;
ci.count = ci.nbytes = 0;
@@ -308,7 +305,6 @@ cxgb_dequeue(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)
@@ -919,7 +915,8 @@ sge_timer_cb(void *arg)
(FW_TUNNEL_SGEEC_START + pi->first_qset));
}
}
- if (sc->open_device_map != 0)
+ if (((sc->flags & USING_MSIX) == 0 || sc->params.nports > 2) &&
+ sc->open_device_map != 0)
callout_reset(&sc->sge_timer_ch, TX_RECLAIM_PERIOD, sge_timer_cb, sc);
}
@@ -990,6 +987,7 @@ sge_timer_reclaim(void *arg, int ncount)
KASSERT((sc->flags & USING_MSIX) == 0,
("can't call timer reclaim for msi-x"));
+
for (i = 0; i < nqsets; i++) {
qs = &sc->sge.qs[pi->first_qset + i];
@@ -1702,7 +1700,6 @@ cxgb_transmit(struct ifnet *ifp, struct
TXQ_UNLOCK(qs);
} else
error = drbr_enqueue(ifp, qs->txq[TXQ_ETH].txq_mr, m);
-
return (error);
}
void
@@ -2808,19 +2805,21 @@ get_packet(adapter_t *adap, unsigned int
} else {
m_cljset(m, cl, fl->type);
m->m_flags = flags;
- m->m_next = m->m_nextpkt = NULL;
}
m->m_len = len;
}
switch(sopeop) {
case RSPQ_SOP_EOP:
- DBG(DBG_RX, ("get_packet: SOP-EOP m %p\n", m));
+ ret = 1;
+ /* FALLTHROUGH */
+ case RSPQ_SOP:
mh->mh_head = mh->mh_tail = m;
m->m_pkthdr.len = len;
- ret = 1;
break;
+ case RSPQ_EOP:
+ ret = 1;
+ /* FALLTHROUGH */
case RSPQ_NSOP_NEOP:
- DBG(DBG_RX, ("get_packet: NO_SOP-NO_EOP m %p\n", m));
if (mh->mh_tail == NULL) {
log(LOG_ERR, "discarding intermediate descriptor entry\n");
m_freem(m);
@@ -2829,20 +2828,6 @@ get_packet(adapter_t *adap, unsigned int
mh->mh_tail->m_next = m;
mh->mh_tail = m;
mh->mh_head->m_pkthdr.len += len;
- ret = 0;
- break;
- case RSPQ_SOP:
- DBG(DBG_RX, ("get_packet: SOP m %p\n", m));
- m->m_pkthdr.len = len;
- mh->mh_head = mh->mh_tail = m;
- ret = 0;
- break;
- case RSPQ_EOP:
- DBG(DBG_RX, ("get_packet: EOP m %p\n", m));
- mh->mh_head->m_pkthdr.len += len;
- mh->mh_tail->m_next = m;
- mh->mh_tail = m;
- ret = 1;
break;
}
if (cxgb_debug)
@@ -2955,9 +2940,6 @@ process_responses(adapter_t *adap, struc
} else {
m = m_gethdr(M_DONTWAIT, MT_DATA);
}
-
- /* XXX m is lost here if rspq->rspq_mbuf is not NULL */
-
if (m == NULL)
goto no_mem;
More information about the svn-src-user
mailing list