Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Mar 2013 00:35:45 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r248779 - head/sys/dev/ath
Message-ID:  <201303270035.r2R0ZjU9076747@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Wed Mar 27 00:35:45 2013
New Revision: 248779
URL: http://svnweb.freebsd.org/changeset/base/248779

Log:
  * Stop processing after HAL_EIO; this is what the reference driver does.
  * If we hit an empty queue condition (which I haven't yet root caused, grr.)
    .. make sure we release the lock before continuing.

Modified:
  head/sys/dev/ath/if_ath_tx_edma.c

Modified: head/sys/dev/ath/if_ath_tx_edma.c
==============================================================================
--- head/sys/dev/ath/if_ath_tx_edma.c	Wed Mar 27 00:15:22 2013	(r248778)
+++ head/sys/dev/ath/if_ath_tx_edma.c	Wed Mar 27 00:35:45 2013	(r248779)
@@ -633,7 +633,7 @@ ath_edma_tx_processq(struct ath_softc *s
 		if (status == HAL_EIO) {
 			device_printf(sc->sc_dev, "%s: invalid TX status?\n",
 			    __func__);
-			continue;
+			break;
 		}
 
 #ifdef	ATH_DEBUG_ALQ
@@ -676,6 +676,7 @@ ath_edma_tx_processq(struct ath_softc *s
 			device_printf(sc->sc_dev, "%s: Q%d: empty?\n",
 			    __func__,
 			    ts.ts_queue_id);
+			ATH_TXQ_UNLOCK(txq);
 			continue;
 		}
 



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