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;
                }
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to