2008/12/22 Bob Copeland <m...@bobcopeland.com>:
> While looking into http://bugzilla.kernel.org/show_bug.cgi?id=12080
> I noticed that we call reset() from a lot of places without locking:
>
>  - at probe time
>  - whenever we change channels
>  - whenever we miss 3 beacons
>  - whenever a 'bad' interrupt occurs
>  - whenever the calibration timer runs and we are poorly calibrated
>  - from user space when a user configures an interface, or requests a scan
>
> Some paths use the tasklet, some call reset directly.
>
> PCI-E cards tend to lock up eventually, it seems ath5k_config() is often
> implicated.  Could we do some of this (e.g. set up channels) without doing
> a full reset?  Anyone currently working on reworking the reset a bit?
>
> This is a lot better with Felix's patch to not bail out of reset the
> first time noise calibration fails, but by and large reset's error paths
> are still twisty.  With his patch, I can still make the card lockup by
> reducing ath5k_calinterval.
>
> I can play with this some, but I didn't know if anyone already had pending
> changes in the area.
>

I'm working on PHY stuff right now, I'll add the synth-only channel
switching code after i'm done with txpower. Also  i have a better idea
about periodic phy calibration using software generated interrupts and
packet count instead of a timer. Give me some time and i'll come up
with patches soon (i'm almost done with EEPROM code, only 5210 stuff
remains). Can someone work on these locking issues inside base.c to be
safe on the driver side ?

-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick
_______________________________________________
ath5k-devel mailing list
ath5k-devel@lists.ath5k.org
https://lists.ath5k.org/mailman/listinfo/ath5k-devel

Reply via email to