PERFORCE change 139089 for review
Sam Leffler
sam at FreeBSD.org
Mon Mar 31 10:41:50 PDT 2008
http://perforce.freebsd.org/chv.cgi?CH=139089
Change 139089 by sam at sam_ebb on 2008/03/31 17:40:52
go back to just deq'ing the packet and not polling first before
acquiring the tx buffer; will need to revisit altq later
Affected files ...
.. //depot/projects/vap/sys/dev/ath/if_ath.c#53 edit
Differences ...
==== //depot/projects/vap/sys/dev/ath/if_ath.c#53 (text+ko) ====
@@ -1863,9 +1863,6 @@
if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || sc->sc_invalid)
return;
for (;;) {
- IFQ_POLL(&ifp->if_snd, m);
- if (m == NULL)
- break;
/*
* Grab a TX buffer and associated resources.
*/
@@ -1877,22 +1874,19 @@
if (bf == NULL) {
DPRINTF(sc, ATH_DEBUG_XMIT, "%s: out of xmit buffers\n",
__func__);
- /* XXX tail drop */
sc->sc_stats.ast_tx_qstop++;
ifp->if_drv_flags |= IFF_DRV_OACTIVE;
break;
}
- STAILQ_INIT(&frags);
IFQ_DEQUEUE(&ifp->if_snd, m);
if (m == NULL) {
- /*
- * The q was emptied while we blocked,
- * this can happen when we're preempted.
- */
- ni = NULL;
- goto reclaim;
+ ATH_TXBUF_LOCK(sc);
+ STAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list);
+ ATH_TXBUF_UNLOCK(sc);
+ break;
}
+ STAILQ_INIT(&frags);
ni = (struct ieee80211_node *) m->m_pkthdr.rcvif;
pri = M_WME_GETAC(m);
txq = sc->sc_ac2q[pri];
More information about the p4-projects
mailing list