Clear IFF_DRV_OACTIVE if any slots were completed.

This unblocks TX EDMA under high load.
This commit is contained in:
Adrian Chadd 2012-11-05 09:27:47 +00:00
parent 60ee3bb213
commit c19a2a1a9f

View File

@ -602,6 +602,12 @@ ath_edma_tx_proc(void *arg, int npending)
sc->sc_wd_timer = 0;
if (idx > 0) {
IF_LOCK(&sc->sc_ifp->if_snd);
sc->sc_ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
IF_UNLOCK(&sc->sc_ifp->if_snd);
}
/* Kick software scheduler */
/*
* XXX It's inefficient to do this if the FIFO queue is full,