Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Mar 2008 17:41:49 GMT
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 139089 for review
Message-ID:  <200803311741.m2VHfnJd052561@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=139089

Change 139089 by sam@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];



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