On Wednesday 31 March 2010 12:58:47 Bob Copeland wrote:
> On Wed, Mar 31, 2010 at 11:02:32AM +0900, Bruno Randolf wrote:
> > we have to stop TX while NF calibration. also we need to lock it against
> > other uses of reset / calibration. i think this is what gives us the
> > problems with 'warm reset'. afaik other calibration can run in parallel.
> > nick gave me some clues and i'm looking into it today...
> 
> Agreed, I've seen BadThings happen with two NF running in parallel,
> sometimes NF would never complete, other times I'd get bus errors plus
> an NMI.  I tried a small patch to specifically test/set a bit around NF
> and those problems went away.

good to hear!

i've also seen bus errors. i have not verified if the come from NF or not, but 
they have something to do with ath5k_reset and register_timeout... as you say 
probably NF being interrupted by int RXORN which starts a reset...

> (For my test I was running calibration tasklet once a second and doing
> lots of scans at the same time, usually locks up within 15 minutes.)
> 
> Once upon a time I had a patch that did a spinlock around all of reset,
> but it's bad to lock other CPUs for such a long period of time.  What I
> think we should do instead is have a busy flag that gets set under a
> spinlock which we can then test normally outside of locked regions.

not sure right now...

> > > There's still ath5k_tasklet_reset, which wakes the queues (should it?).
> > 
> > yep i think so. after a reset we should be ready to transmit again.
> 
> I meant, if nothing stops queues before reset, should
> ath5k_tasklet_reset start them in any case?

i think it's ok. ath5k_reset is also called from ath5k_init, or ath5k_config, 
so the queues might have been stopped before. also everything is supposed to 
be fresh & clean after a reset, so starting the queues won't hurt.

bruno
_______________________________________________
ath5k-devel mailing list
ath5k-devel@lists.ath5k.org
https://lists.ath5k.org/mailman/listinfo/ath5k-devel

Reply via email to