Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Nov 2012 09:27:47 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r242604 - head/sys/dev/ath
Message-ID:  <201211050927.qA59RlSO069516@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211050927.qA59RlSO069516>