K 10 svn:author V 6 adrian K 8 svn:date V 27 2011-08-15T13:25:55.756931Z K 7 svn:log V 598 Fix some of the locking to correctly protect things. Specifically, ath_tx_tid_unsched() wasn't correctly locking things, so there was a race condition between the upper half that were unscheduling things (eg a node flush) and the lower half (tx sched and completion task.) Fixing it required re-doing some of the locking. This seems to now cope with TX failures -> BAR -> BAR failure -> DELBA. Normal TX then continues fine. Before, the code would get wedged whilst doing packet TX whilst doing BAR re-transmission, and things would stop progressing until a scan or some other flush would occur. END