From owner-freebsd-bugs@FreeBSD.ORG  Tue May 15 05:00:15 2012
Return-Path: <owner-freebsd-bugs@FreeBSD.ORG>
Delivered-To: freebsd-bugs@hub.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id B9145106566C
	for <freebsd-bugs@hub.freebsd.org>;
	Tue, 15 May 2012 05:00:15 +0000 (UTC)
	(envelope-from gnats@FreeBSD.org)
Received: from freefall.freebsd.org (freefall.freebsd.org
	[IPv6:2001:4f8:fff6::28])
	by mx1.freebsd.org (Postfix) with ESMTP id 72B6D8FC0A
	for <freebsd-bugs@hub.freebsd.org>;
	Tue, 15 May 2012 05:00:15 +0000 (UTC)
Received: from freefall.freebsd.org (localhost [127.0.0.1])
	by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q4F50FGG062964
	for <freebsd-bugs@freefall.freebsd.org>; Tue, 15 May 2012 05:00:15 GMT
	(envelope-from gnats@freefall.freebsd.org)
Received: (from gnats@localhost)
	by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q4F50F93062963;
	Tue, 15 May 2012 05:00:15 GMT (envelope-from gnats)
Date: Tue, 15 May 2012 05:00:15 GMT
Message-Id: <201205150500.q4F50F93062963@freefall.freebsd.org>
To: freebsd-bugs@FreeBSD.org
From: dfilter@FreeBSD.ORG (dfilter service)
Cc: 
Subject: Re: kern/167902: commit references a PR
X-BeenThere: freebsd-bugs@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: dfilter service <dfilter@FreeBSD.ORG>
List-Id: Bug reports <freebsd-bugs.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bugs>,
	<mailto:freebsd-bugs-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-bugs>
List-Post: <mailto:freebsd-bugs@freebsd.org>
List-Help: <mailto:freebsd-bugs-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bugs>,
	<mailto:freebsd-bugs-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 15 May 2012 05:00:15 -0000

The following reply was made to PR kern/167902; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/167902: commit references a PR
Date: Tue, 15 May 2012 04:55:25 +0000 (UTC)

 Author: adrian
 Date: Tue May 15 04:55:15 2012
 New Revision: 235461
 URL: http://svn.freebsd.org/changeset/base/235461
 
 Log:
   Handle non-xretry errors the same as xretry errors for now.
   
   Although I _should_ handle the other errors in various ways (specifically
   errors like FILT), treating them as having transmitted successfully
   is completely wrong.  Here, they'd be counted as successful and the BAW
   would be advanced.. but the RX side wouldn't have received them.
   
   The specific errors I've been seeing here are HAL_TXERR_FILT.
   
   This patch does fix the issue - I've tested it using -i 0.001 pings
   (enough to start aggregation) and now the behaviour is correct:
   
   * The RX side never sees a "moved window" error, and
   * The TX side sends BARs as needed, with the RX side correctly handling
     them.
   
   PR:		kern/167902
 
 Modified:
   head/sys/dev/ath/if_ath_tx.c
 
 Modified: head/sys/dev/ath/if_ath_tx.c
 ==============================================================================
 --- head/sys/dev/ath/if_ath_tx.c	Tue May 15 03:21:36 2012	(r235460)
 +++ head/sys/dev/ath/if_ath_tx.c	Tue May 15 04:55:15 2012	(r235461)
 @@ -3597,9 +3597,16 @@ ath_tx_aggr_comp_aggr(struct ath_softc *
  	pktlen = bf_first->bf_state.bfs_pktlen;
  
  	/*
 -	 * handle errors first
 +	 * Handle errors first!
 +	 *
 +	 * Here, handle _any_ error as a "exceeded retries" error.
 +	 * Later on (when filtered frames are to be specially handled)
 +	 * it'll have to be expanded.
  	 */
 +#if 0
  	if (ts.ts_status & HAL_TXERR_XRETRY) {
 +#endif
 +	if (ts.ts_status != 0) {
  		ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]);
  		ath_tx_comp_aggr_error(sc, bf_first, atid);
  		return;
 @@ -3839,7 +3846,10 @@ ath_tx_aggr_comp_unaggr(struct ath_softc
  	 * Don't bother with the retry check if all frames
  	 * are being failed (eg during queue deletion.)
  	 */
 +#if 0
  	if (fail == 0 && ts->ts_status & HAL_TXERR_XRETRY) {
 +#endif
 +	if (fail == 0 && ts->ts_status != 0) {
  		ATH_TXQ_UNLOCK(sc->sc_ac2q[atid->ac]);
  		DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: retry_unaggr\n",
  		    __func__);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"