Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Apr 2013 00:53:34 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r249914 - user/adrian/net80211_tx/sys/dev/ath
Message-ID:  <201304260053.r3Q0rYi8013429@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Fri Apr 26 00:53:34 2013
New Revision: 249914
URL: http://svnweb.freebsd.org/changeset/base/249914

Log:
  Since we're clearing the BAR and filtered frames tracking in the TID,
  ensure we also take into account the pause counter.

Modified:
  user/adrian/net80211_tx/sys/dev/ath/if_ath_tx.c

Modified: user/adrian/net80211_tx/sys/dev/ath/if_ath_tx.c
==============================================================================
--- user/adrian/net80211_tx/sys/dev/ath/if_ath_tx.c	Fri Apr 26 00:47:28 2013	(r249913)
+++ user/adrian/net80211_tx/sys/dev/ath/if_ath_tx.c	Fri Apr 26 00:53:34 2013	(r249914)
@@ -3862,6 +3862,36 @@ ath_tx_tid_reset(struct ath_softc *sc, s
 #endif
 
 	/*
+	 * If we have a bar_wait set, we need to unpause the TID
+	 * here.  Otherwise once cleanup has finished, the TID won't
+	 * have the right paused counter.
+	 *
+	 * XXX I'm not going through resume here - I don't want the
+	 * node to be rescheuled just yet.  This however should be
+	 * methodized!
+	 */
+	if (tid->bar_wait) {
+		if (tid->paused > 0) {
+			tid->paused --;
+		}
+	}
+
+	/*
+	 * XXX same with a currently filtered TID.
+	 *
+	 * Since this is being called during a flush, we assume that
+	 * the filtered frame list is actually empty.
+	 *
+	 * XXX TODO: add in a check to ensure that the filtered queue
+	 * depth is actually 0!
+	 */
+	if (tid->isfiltered) {
+		if (tid->paused > 0) {
+			tid->paused --;
+		}
+	}
+
+	/*
 	 * Clear BAR, filtered frames, scheduled and ADDBA pending.
 	 * The TID may be going through cleanup from the last association
 	 * where things in the BAW are still in the hardware queue.



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