Re: [ath5k-devel] [AR2425] TX death on high load - are there hardware/software races?

2010-03-19 Thread Bob Copeland
On Thu, Mar 18, 2010 at 02:58:14PM -0400, Bob Copeland wrote: > On Tue, Mar 16, 2010 at 11:45:52PM +0100, Benoit PAPILLAULT wrote: > > One solution is to let the TX descriptor in the TX queue if the current > > value of TXDP is currently pointing to it. > > Makes sense, just need to be careful w

Re: [ath5k-devel] [AR2425] TX death on high load - are there hardware/software races?

2010-03-18 Thread Bob Copeland
On Tue, Mar 16, 2010 at 11:45:52PM +0100, Benoit PAPILLAULT wrote: > One solution is to let the TX descriptor in the TX queue if the current > value of TXDP is currently pointing to it. Makes sense, just need to be careful we don't exit if the TX queue is also empty, otherwise we'd never be able

Re: [ath5k-devel] [AR2425] TX death on high load - are there hardware/software races?

2010-03-16 Thread Benoit PAPILLAULT
Bob Copeland a écrit : > On Sun, Mar 14, 2010 at 08:43:02PM +0200, Maxim Levitsky wrote: > >> One thing I noticed is racy behaviour of ath5k_txbuf_setup. >> >> .. >> >> spin_lock_bh(&txq->lock); >> list_add_tail(&bf->list, &txq->q); >> if (txq->link == NULL) /* is this first packe

Re: [ath5k-devel] [AR2425] TX death on high load - are there hardware/software races?

2010-03-16 Thread Bob Copeland
On Sun, Mar 14, 2010 at 08:43:02PM +0200, Maxim Levitsky wrote: > One thing I noticed is racy behaviour of ath5k_txbuf_setup. > > .. > > spin_lock_bh(&txq->lock); > list_add_tail(&bf->list, &txq->q); > if (txq->link == NULL) /* is this first packet? */ > ath5k_hw_s

Re: [ath5k-devel] [AR2425] TX death on high load - are there hardware/software races?

2010-03-15 Thread Bob Copeland
On Sun, Mar 14, 2010 at 08:43:02PM +0200, Maxim Levitsky wrote: > One thing I noticed is racy behaviour of ath5k_txbuf_setup. > > .. > > spin_lock_bh(&txq->lock); > list_add_tail(&bf->list, &txq->q); > if (txq->link == NULL) /* is this first packet? */ > ath5k_hw_s

[ath5k-devel] [AR2425] TX death on high load - are there hardware/software races?

2010-03-14 Thread Maxim Levitsky
One thing I noticed is racy behaviour of ath5k_txbuf_setup. ... spin_lock_bh(&txq->lock); list_add_tail(&bf->list, &txq->q); if (txq->link == NULL) /* is this first packet? */ ath5k_hw_set_txdp(ah, txq->qnum, bf->daddr); else /* no, so only link it