From owner-svn-src-all@FreeBSD.ORG Tue Mar 26 04:48:58 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id BFFEBB2D; Tue, 26 Mar 2013 04:48:58 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id B33AC932; Tue, 26 Mar 2013 04:48:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2Q4mwGf008573; Tue, 26 Mar 2013 04:48:58 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2Q4mwRp008572; Tue, 26 Mar 2013 04:48:58 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201303260448.r2Q4mwRp008572@svn.freebsd.org> From: Adrian Chadd Date: Tue, 26 Mar 2013 04:48:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r248714 - head/sys/dev/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Mar 2013 04:48:58 -0000 Author: adrian Date: Tue Mar 26 04:48:58 2013 New Revision: 248714 URL: http://svnweb.freebsd.org/changeset/base/248714 Log: Convert the EDMA multicast queue code over to use the HAL method to set the descriptor link pointer, rather than directly. This is needed on AR9380 and later (ie, EDMA) NICs so the multicast queue has a chance in hell of being put together right. Tested: * AR9380, AR9580 in hostap mode, CABQ traffic (but with other patches..) 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 Tue Mar 26 04:47:40 2013 (r248713) +++ head/sys/dev/ath/if_ath_tx_edma.c Tue Mar 26 04:48:58 2013 (r248714) @@ -249,7 +249,7 @@ ath_edma_xmit_handoff_mcast(struct ath_s struct ath_buf *bf) { - ATH_TXQ_LOCK_ASSERT(txq); + ATH_TX_LOCK_ASSERT(sc); KASSERT((bf->bf_flags & ATH_BUF_BUSY) == 0, ("%s: busy status 0x%x", __func__, bf->bf_flags)); @@ -257,7 +257,7 @@ ath_edma_xmit_handoff_mcast(struct ath_s /* * XXX this is mostly duplicated in ath_tx_handoff_mcast(). */ - if (ATH_TXQ_FIRST(txq) != NULL) { + if (ATH_TXQ_LAST(txq, axq_q_s) != NULL) { struct ath_buf *bf_last = ATH_TXQ_LAST(txq, axq_q_s); struct ieee80211_frame *wh; @@ -270,7 +270,9 @@ ath_edma_xmit_handoff_mcast(struct ath_s BUS_DMASYNC_PREWRITE); /* link descriptor */ - *txq->axq_link = bf->bf_daddr; + ath_hal_settxdesclink(sc->sc_ah, + bf_last->bf_lastds, + bf->bf_daddr); } #ifdef ATH_DEBUG_ALQ