From owner-svn-src-user@FreeBSD.ORG Wed Jun 15 15:24:22 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 48B86106564A; Wed, 15 Jun 2011 15:24:22 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 39B7A8FC08; Wed, 15 Jun 2011 15:24:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p5FFOMjV087501; Wed, 15 Jun 2011 15:24:22 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p5FFOMW0087499; Wed, 15 Jun 2011 15:24:22 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201106151524.p5FFOMW0087499@svn.freebsd.org> From: Adrian Chadd Date: Wed, 15 Jun 2011 15:24:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r223113 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jun 2011 15:24:22 -0000 Author: adrian Date: Wed Jun 15 15:24:21 2011 New Revision: 223113 URL: http://svn.freebsd.org/changeset/base/223113 Log: Misc stuff * tidy up a function call so it doesn't go over > 80 lines * add some disabled debugging for myself Non-misc stuff (just so I don't forget): The action frame is going out with AC pri = 3 (AC_VO); thus it's going out whilst the queued hardware frames in the other pri (eg AC=0/TID=0) are also queued. So the addba makes it out before the hardware queued frames before it. The solution may be to somehow delaying queueing the ADDBA frame until all the hardware-queued frames are sent. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Wed Jun 15 15:07:01 2011 (r223112) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Wed Jun 15 15:24:21 2011 (r223113) @@ -957,6 +957,14 @@ ath_tx_start(struct ath_softc *sc, struc if (is_ampdu_tx) seqno = ath_tx_tid_seqno_assign(sc, ni, bf, m0); +#if 0 + /* Is ampdu pending? fetch the seqno and print it out */ + if (is_ampdu_pending) + device_printf(sc->sc_dev, + "%s: tid %d: ampdu pending, seqno %d\n", + __func__, tid, M_SEQNO_GET(m0)); +#endif + /* This also sets up the DMA map */ r = ath_tx_normal_setup(sc, ni, bf, m0); @@ -1021,7 +1029,9 @@ ath_tx_raw_start(struct ath_softc *sc, s pktlen = m0->m_pkthdr.len - (hdrlen & 3) + IEEE80211_CRC_LEN; /* Handle encryption twiddling if needed */ - if (! ath_tx_tag_crypto(sc, ni, m0, params->ibp_flags & IEEE80211_BPF_CRYPTO, 0, &hdrlen, &pktlen, &keyix)) { + if (! ath_tx_tag_crypto(sc, ni, + m0, params->ibp_flags & IEEE80211_BPF_CRYPTO, 0, + &hdrlen, &pktlen, &keyix)) { ath_freetx(m0); return EIO; }