Author: adrian
Date: Mon Nov  5 09:27:47 2012
New Revision: 242604
URL: http://svnweb.freebsd.org/changeset/base/242604

Log:
  Clear IFF_DRV_OACTIVE if any slots were completed.
  
  This unblocks TX EDMA under high load.

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   Mon Nov  5 09:26:27 2012        
(r242603)
+++ head/sys/dev/ath/if_ath_tx_edma.c   Mon Nov  5 09:27:47 2012        
(r242604)
@@ -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,
_______________________________________________
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