freebsd-skq/sys/dev
adrian 29059de593 Make sure the final descriptor in an aggregate has rate control information.
This was broken by me when merging the 802.11n aggregate descriptor chain
setup with the default descriptor chain setup, in preparation for supporting
AR9380 NICs.

The corner case here is quite specific - if you queue an aggregate frame
with >1 frames in it, and the last subframe has only one descriptor making
it up, then that descriptor won't have the rate control information
copied into it. Look at what happens inside ar5416FillTxDesc() if
both firstSeg and lastSeg are set to 1.

Then when ar5416ProcTxDesc() goes to fill out ts_rate based on the
transmit index, it looks at the rate control fields in that descriptor
and dutifully sets it to be 0.

It doesn't happen for non-aggregate frames - if they have one descriptor,
the first descriptor already has rate control info.

I removed the call to ath_hal_setuplasttxdesc() when I migrated the
code to use the "new" style aggregate chain routines from the HAL.
But I missed this particular corner case.

This is a bit inefficient with MIPS boards as it involves a few redundant
writes into non-cachable memory.  I'll chase that up when it matters.

Tested:

 * AR9280 STA mode, TCP iperf traffic
 * Rui Paulo <rpaulo@> first reported this and has verified it on
   his AR9160 based AP.

PR:		kern/173636
2012-11-15 03:00:49 +00:00
..
aac Give panic format string to pacify clang warning. 2012-11-09 13:58:52 +00:00
acpi_support add support for newer Lenovo ThinkPads to acpi_ibm 2012-10-29 10:22:00 +00:00
acpica Update MAX_TASKS to scale a bit based on MAXCPU 2012-11-12 18:09:25 +00:00
adb Use uiomove return value instead of returning 0. 2012-11-13 06:03:43 +00:00
adlink
advansys
ae
age TSO engine of L1 requires a separate DMA descriptor for TCP 2012-10-30 07:55:03 +00:00
agp
aha
ahb
ahci Announce diagnostic page 7 (Element Descriptor) support. 2012-11-07 22:53:46 +00:00
aic
aic7xxx Fix a bug in aicasm_gram.y, noted by a newer clang 3.2 snapshot: it 2012-11-14 18:54:08 +00:00
alc
ale Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
altera
amdsbwd
amdtemp
amr
an
arcmsr
asmc Give device_printf format string to pacify clang warning. 2012-11-09 14:58:26 +00:00
asr
ata Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
ath Make sure the final descriptor in an aggregate has rate control information. 2012-11-15 03:00:49 +00:00
atkbdc
auxio
bce - Remove BCE_JUMBO_HDRSPLIT kernel option which was forgotten in r218423. 2012-10-30 13:22:39 +00:00
bfe
bge Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
bktr Fix typo; s/ouput/output 2012-11-07 07:00:59 +00:00
bm
buslogic
bwi
bwn
bxe
cardbus
cas Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
ce
cesa
cfe
cfi
ciss Increase the driver-side limit on the number of logical volumes that 2012-10-25 18:46:02 +00:00
cm
cmx
coretemp
cp
cpuctl cpuctl_do_cpuid: explicitly use ecx=0 for cpuid call 2012-11-04 13:46:28 +00:00
cpufreq
cs
ct Use ANSI prototype to fix build with clang. 2012-11-10 14:58:06 +00:00
ctau
cx
cxgb
cxgbe Make sure the inp hasn't been dropped before trying to access its socket 2012-11-06 20:22:39 +00:00
cy
dc Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
dcons
de
digi
dpms
dpt
drm Cast VIA_READ to (void) where the result is unused. 2012-11-09 14:46:23 +00:00
drm2 - If DRM_DEBUG_DEFAULT_ON is defined, then initialize drm_debug_flagi to 2012-11-02 05:26:33 +00:00
e1000
ed
eisa
en
ep
esp
et
etherswitch Disable automatic attachment of arswitch. It can't be auto-detected (like PHYs 2012-11-07 22:43:09 +00:00
ex
exca
fatm
fb
fdc
fdt
fe
filemon A little bit easier to read. 2012-10-26 20:24:13 +00:00
firewire
flash Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
fxp Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
gem Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
glxiic
glxsb
gpio
gxemul
hatm
hifn
hme
hpt27xx
hptiop
hptmv
hptrr
hwpmc Fixup r240246: hwpmc needs to retain the pinning until ASTs are not 2012-10-30 15:10:50 +00:00
ic
ichsmb
ichwd
ida
ie
ieee488
if_ndis
iicbus Check the return value of uiomove(9). 2012-11-13 05:58:52 +00:00
iir
io
ipmi
ips
ipw
isci
iscsi/initiator
isf
isp Don't allow for more than one segment for the control space since 2012-11-02 14:38:57 +00:00
ispfw
iwi
iwn
ixgb
ixgbe A few important fixes: 2012-10-31 23:50:36 +00:00
jme
joy
kbd
kbdmux
ksyms
le
led
lge Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
lindev
lmc
malo
mc146818
mca
mcd
md Zero the newly allocated md(4) swap-backed page to prevent random 2012-11-08 03:17:41 +00:00
mem
mfi Add support for SCSI pass through devices to be attached and 2012-11-08 00:32:36 +00:00
mge
mii Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
mk48txx
mlx
mly
mmc Add BCM2835 SDHCI driver and enable it in Raspberry Pi config 2012-10-29 17:23:45 +00:00
mn Remove unused static mn_timeout. 2012-11-09 14:14:51 +00:00
mps
mpt
mse
msk
mvs
mwl
mxge
my
nand
ncv
netmap
nfe
nge Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
nmdm
nsp
null Provide a device name in the sysctl tree for programs to query the 2012-11-01 17:01:05 +00:00
nvd
nve Fix all the inconsistent nve_os* function declarations and definitions 2012-11-10 16:02:12 +00:00
nvme Use callout_reset_curcpu to allow the callout to be handled by the 2012-10-31 23:44:19 +00:00
nvram
nvram2env
nxge Fix typo; s/ouput/output 2012-11-07 07:00:59 +00:00
oce
ofw
patm
pbio
pccard
pccbb
pcf
pci Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
pcn
pdq
powermac_nvram
ppbus
ppc
pst
pty
puc Add support for Advantech PCI-1602 RS-485/RS-422 serial card 2012-11-09 01:51:06 +00:00
qlxgb
quicc
ral
random
rc
re Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
rndtest
rp
rt
safe
sbni
scc
scd
sdhci Add new quirks: 2012-10-29 17:21:58 +00:00
sec
sf
sfxge
sge
si
siba
siis
sio Add support for CIR1000 - Cirrus Logic V34 to the sio driver 2012-11-13 20:38:55 +00:00
sis Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
sk
smbus
smc
sn
snc Use ANSI prototype to fix build with clang. 2012-11-10 14:58:06 +00:00
snp
sound Fix typo; s/ouput/output 2012-11-07 07:00:59 +00:00
speaker
spibus
ste Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
stg
stge Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
streams
sym
syscons Add tty_set_winsize(). 2012-11-03 22:21:37 +00:00
tdfx
terasic
ti Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
tl Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
tpm
trm
tsec
twa Give tw_osl_dbg_printf format string to pacify clang warning. 2012-11-09 15:29:52 +00:00
twe
tws
tx
txp
uart Add support for CIR1000 - Cirrus Logic V34 to the uart driver 2012-11-13 21:04:35 +00:00
ubsec
usb Add new USB IDs. 2012-11-12 07:25:51 +00:00
utopia
vge
viawd
virtio
vkbd
vr Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
vte
vx
vxge
watchdog
wb Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00
wbwd
wds
wi
wl
wpi
wtap
xe
xen Redo r242889, now using the method from projects/amd64_xen_pv r240747. 2012-11-12 22:28:32 +00:00
xl Remove duplicate const specifiers in many drivers (I hope I got all of 2012-11-05 19:16:27 +00:00