Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jun 2012 07:20:12 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-wireless@FreeBSD.org
Subject:   Re: kern/166190: commit references a PR
Message-ID:  <201206110720.q5B7KCxj004569@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/166190; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/166190: commit references a PR
Date: Mon, 11 Jun 2012 07:16:04 +0000 (UTC)

 Author: adrian
 Date: Mon Jun 11 07:15:48 2012
 New Revision: 236876
 URL: http://svn.freebsd.org/changeset/base/236876
 
 Log:
   Retried frames need to be inserted in the head of the list, not the tail.
   
   This is an unfortunate byproduct of how the routine is used - it's called
   with the head frame on the queue, but if the frame is failed, it's inserted
   into the tail of the queue.
   
   Because of this, the sequence numbers would get all shuffled around and
   the BAW would be bumped past this sequence number, that's now at the
   end of the software queue.  Then, whenever it's time for that frame
   to be transmitted, it'll be immediately outside of the BAW and TX will
   stall until the BAW catches up.
   
   It can also result in all kinds of weird duplicate BAW frames, leading
   to hilarious panics.
   
   PR:		kern/166190
 
 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	Mon Jun 11 07:11:34 2012	(r236875)
 +++ head/sys/dev/ath/if_ath_tx.c	Mon Jun 11 07:15:48 2012	(r236876)
 @@ -2309,7 +2309,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, s
  
  	/* paused? queue */
  	if (tid->paused) {
 -		ATH_TXQ_INSERT_TAIL(tid, bf, bf_list);
 +		ATH_TXQ_INSERT_HEAD(tid, bf, bf_list);
  		/* XXX don't sched - we're paused! */
  		return;
  	}
 _______________________________________________
 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"
 



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