K 10 svn:author V 6 adrian K 8 svn:date V 27 2011-10-15T16:18:35.341230Z K 7 svn:log V 1018 Hide ath_rx_proc() behind the ATH_LOCK, and start using it before resetting the hardware. When resetting the NIC (eg when a stuck beacon occurs), there may be received frames in the RX queue. This should happen: * disable interrupts; * stop pcu receive; * handle frames in the RX queue; * reset the hardware as needed; * start the PCU RX (which purges the queue.) This prevents RX frames from disappearing after an interface reset (eg ANI config change, forced beacon stuck) and thus the RX AMPDU tracking getting out of whack with the TX'ing side. Since PCU receive has stopped, This doesn't entirely fix things, as the TX side can and will drop frames on an interface reset or node flush. I'll worry about this in a subsequent commit. TODO: * see whether the pcu rx should be stopped before disabling interrupts, that way the MAC definitely stops ACKing frames. Instead, right now with the above order, frames coming after intr disable but before pcu stop may overflow the RX fifo and cause some issues. END