From owner-svn-src-head@FreeBSD.ORG Wed Mar 27 00:35:46 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 29A15925; Wed, 27 Mar 2013 00:35:46 +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 1C25918C; Wed, 27 Mar 2013 00:35:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2R0Zjtw076748; Wed, 27 Mar 2013 00:35:45 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2R0ZjU9076747; Wed, 27 Mar 2013 00:35:45 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201303270035.r2R0ZjU9076747@svn.freebsd.org> From: Adrian Chadd Date: Wed, 27 Mar 2013 00:35:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r248779 - 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-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Mar 2013 00:35:46 -0000 Author: adrian Date: Wed Mar 27 00:35:45 2013 New Revision: 248779 URL: http://svnweb.freebsd.org/changeset/base/248779 Log: * Stop processing after HAL_EIO; this is what the reference driver does. * If we hit an empty queue condition (which I haven't yet root caused, grr.) .. make sure we release the lock before continuing. 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 Wed Mar 27 00:15:22 2013 (r248778) +++ head/sys/dev/ath/if_ath_tx_edma.c Wed Mar 27 00:35:45 2013 (r248779) @@ -633,7 +633,7 @@ ath_edma_tx_processq(struct ath_softc *s if (status == HAL_EIO) { device_printf(sc->sc_dev, "%s: invalid TX status?\n", __func__); - continue; + break; } #ifdef ATH_DEBUG_ALQ @@ -676,6 +676,7 @@ ath_edma_tx_processq(struct ath_softc *s device_printf(sc->sc_dev, "%s: Q%d: empty?\n", __func__, ts.ts_queue_id); + ATH_TXQ_UNLOCK(txq); continue; }