svn commit: r242604 - head/sys/dev/ath

Adrian Chadd adrian at FreeBSD.org
Mon Nov 5 09:27:47 UTC 2012


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,


More information about the svn-src-head mailing list