diff options
author | Stefan Sperling <stsp@cvs.openbsd.org> | 2012-08-23 10:34:26 +0000 |
---|---|---|
committer | Stefan Sperling <stsp@cvs.openbsd.org> | 2012-08-23 10:34:26 +0000 |
commit | 5d08f5f9ffcaeeb829a2999aeb7b792dec799040 (patch) | |
tree | d1eca4dfff3937b08b97f803652f126468b0ef57 /sys/arch | |
parent | f12cfd0741501425174a54e5a303f740d4ce222b (diff) |
Fix a race in rt2661 Tx interrupt processing which can cause Tx processing
to get stuck with OACTIVE set, requiring 'ifconfig ral0 down up' to unwedge.
Make space in the Tx queue from the rt2661_tx_dma_intr() handler,
rather than waiting until rt2661_tx_intr() is run. The latter function
now collects AMRR statistics only. AMRR node allocation is now separated
from ieee80211_node allocation to make this possible.
This commit also brings back the separation of OACTIVE flags for management
and data Tx queues which I reverted in the previous commit.
Inspired by ral commits by sephe@dragonflybsd and patch submission to
misc@ by Roland Dreier http://marc.info/?l=openbsd-misc&m=125895269930106&w=2
Tested by myself, edd, jsg, Tobias Ulmer, Pieter Verberne, Tim van der Molen.
Diffstat (limited to 'sys/arch')
0 files changed, 0 insertions, 0 deletions