diff options
author | adrian <adrian@FreeBSD.org> | 2012-04-04 21:49:49 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2012-04-04 21:49:49 +0000 |
commit | 866c0e9fc20d6b6cdf4469453846bf990f248952 (patch) | |
tree | 8b3c86961f6d36ef07eb93bee9064e28da211a21 /contrib/bind9/lib/isc/unix/stdio.c | |
parent | 1a4c88463610a5598829f7772c9caade19be0457 (diff) | |
download | FreeBSD-src-866c0e9fc20d6b6cdf4469453846bf990f248952.zip FreeBSD-src-866c0e9fc20d6b6cdf4469453846bf990f248952.tar.gz |
Correctly handle AR_MoreAggr when assembling multi-descriptor final frames.
Linux ath9k doesn't have this issue as it doesn't try queuing multi-
descriptor frames to the hardware.
Before, I was only setting the first and last descriptor in the final
frame correctly - and that was done by accident. The first descriptor in
the last sub-frame was being correctly updated by ath_tx_setds_11n();
the last descriptor in the last sub-frame was being correctly updated
by ath_buf_set_rate(). But both of those are "incorrect".
The correct behaviour is:
* AR_IsAggr is set for all descriptors for all subframes in an aggregate.
* AR_MoreAggr is set for all descriptors for all non-final sub-frames
in an aggregate.
Ie, all descriptors in the last sub-frame of an aggregate must have this
field set to 0.
I still need to do a couple of extra passes to ensure the pad delimiter
field is being correctly handled in all descriptors in the last sub-frame.
Diffstat (limited to 'contrib/bind9/lib/isc/unix/stdio.c')
0 files changed, 0 insertions, 0 deletions