svn commit: r226557 - user/adrian/if_ath_tx/sys/dev/ath
Adrian Chadd
adrian at FreeBSD.org
Thu Oct 20 06:56:00 UTC 2011
Author: adrian
Date: Thu Oct 20 06:55:59 2011
New Revision: 226557
URL: http://svn.freebsd.org/changeset/base/226557
Log:
Push the task enqueue further down. This fixes some strange bugs I've been
seeing where txq hangs occur. I dunno why; the taskqueue shouldn't cause
a thread preemption to occur.
Modified:
user/adrian/if_ath_tx/sys/dev/ath/if_ath.c
Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 06:25:57 2011 (r226556)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 06:55:59 2011 (r226557)
@@ -1478,8 +1478,6 @@ ath_intr(void *arg)
}
if (status & HAL_INT_TX) {
sc->sc_stats.ast_tx_intr++;
- taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_txtask);
-
/*
* Grab all the currently set bits in the HAL txq bitmap
* and blank them. This is the only place we should be
@@ -1490,6 +1488,7 @@ ath_intr(void *arg)
ath_hal_gettxintrtxqs(sc->sc_ah, &txqs);
sc->sc_txq_active |= txqs;
ATH_UNLOCK(sc);
+ taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_txtask);
}
if (status & HAL_INT_BMISS) {
sc->sc_stats.ast_bmiss++;
More information about the svn-src-user
mailing list