summaryrefslogtreecommitdiffstats
path: root/lib/libkvm
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2013-05-04 04:03:50 +0000
committeradrian <adrian@FreeBSD.org>2013-05-04 04:03:50 +0000
commit6e54a02558cdc656a70c85c189a5b20b2f15aaa1 (patch)
treee2c99ebeb9cfd48054658ddc77fa01c91c7e161e /lib/libkvm
parenteb004e0f1388470d70a4c8ffc653d593cc372887 (diff)
downloadFreeBSD-src-6e54a02558cdc656a70c85c189a5b20b2f15aaa1.zip
FreeBSD-src-6e54a02558cdc656a70c85c189a5b20b2f15aaa1.tar.gz
The holding buffer logic needs to be used for _all_ transmission, not
just "when the queue is busy." After talking with the MAC team, it turns out that the linked list implementation sometimes will not accept a TxDP update and will instead re-read the link pointer. So even if the hardware has finished transmitting a chain and has hit EOL/VEOL, it may still re-read the link pointer to begin transmitting again. So, always set ATH_BUF_BUSY on the last buffer in the chain (to mark the last descriptor as the holding descriptor) and never blank the axq_link pointer. Tested: * AR5416, STA mode TODO: * much more thorough testing with the pre-11n NICs, just to verify that they behave the same way. * test TDMA on the 11n and non-11n hardware.
Diffstat (limited to 'lib/libkvm')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud