freebsd-dev/sys/dev
Adrian Chadd 5e0185081d Fix the holding descriptor logic to actually be "right" (for values
of "right".)

Flip back on the "always continue TX DMA using the holding descriptor"
code - by always setting ATH_BUF_BUSY and never setting axq_link to NULL.

Since the holding descriptor is accessed via txq->axq_link and _that_
is done behind the TXQ lock rather than the TX path lock, the holding
descriptor stuff itself needs to be behind the TXQ lock.

So, do the mental gymnastics needed to do this.

I've not seen any of the hardware failures that I was seeing when
I last tried to do this.

Tested:

* AR5416, STA mode
2013-05-08 21:23:51 +00:00
..
aac MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
acpi_support A driver for Intel Rapid Start Technology ACPI device. 2013-05-08 12:53:21 +00:00
acpica - Some BIOSes use an Extended IRQ resource descriptor in _PRS for a link 2013-04-22 15:51:06 +00:00
adb
adlink
advansys Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ae
age Rework jumbo frame handling. QAC confirmed that the controller 2013-02-05 00:37:45 +00:00
agp Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
aha Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ahb Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
ahci Add IDs for HighPoint RocketRAID 640L/642L/644L -- new series of 4-port 2013-05-02 16:09:06 +00:00
aic Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
aic7xxx Correct misleading bootverbose output: ahc_isa_probe -> ahc_isa_identify 2013-04-17 02:33:56 +00:00
alc
ale
altera Partial MFC of change 228122: 2013-04-30 18:29:05 +00:00
amdsbwd
amdtemp
amr Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
an
arcmsr MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
asmc
asr
ata Usnure that PCI bus BIS_GET_DMA_TAG() method sees the actual PCI 2013-04-14 14:02:34 +00:00
ath Fix the holding descriptor logic to actually be "right" (for values 2013-05-08 21:23:51 +00:00
atkbdc List TrackPoint device before generic model. 2013-03-18 23:31:22 +00:00
auxio
bce Initialize count in order to appease clang. 2013-03-01 22:05:20 +00:00
bfe
bge Fix a typo. 2013-04-02 00:57:54 +00:00
bktr Pass a format string to kproc_create() [1] and thus fix the build with 2013-04-30 05:08:17 +00:00
bm
buslogic Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
bvm
bwi
bwn Fixing a clang warning about using uninitialized variable. 2013-05-06 21:57:44 +00:00
bxe This fixes a out-of-order problem with several 2013-02-07 15:20:54 +00:00
cadence Bring copyright changes with the agreement of Thomas Skibo. 2013-04-28 07:00:36 +00:00
cardbus
cas - Correct mispellings of the word necessary 2013-04-17 11:42:40 +00:00
ce
cesa Move initialization of CESA decoding windows from common section 2013-05-06 13:34:36 +00:00
cfe
cfi MFP4 change 222060: 2013-04-30 18:48:11 +00:00
ciss The controller does not zero this data structure, ever. 2013-04-28 20:46:32 +00:00
cm
cmx
coretemp Mark the coretemp(4) sysctls as MPSAFE, ensuring that Giant won't be held 2013-02-18 22:47:16 +00:00
cp
cpuctl
cpufreq Add a quirk to disable this driver for certain older laptops with an ICH2 2013-02-26 18:30:47 +00:00
cs
ct
ctau
cx
cxgb - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
cxgbe cxgbe: Switch to a better way to install firmware. 2013-05-03 20:09:17 +00:00
cy
dc
dcons MFcalloutng: 2013-02-19 18:22:25 +00:00
de
digi
dpms
dpt options DPT_HANDLE_TIMEOUTS hasn't worked since dpt(4) was converted to CAM 2013-04-10 23:20:09 +00:00
drm Fix white spaces. 2013-04-23 18:30:33 +00:00
drm2 drm: Right-shift I2C slave address before passing it to aux channel 2013-04-08 08:37:57 +00:00
e1000 Update Intel email address. 2013-05-02 01:36:52 +00:00
ed
eisa
en
ep
esp
et
etherswitch Bring in a basic ethernet switch driver for the IP17x series of 2013-05-08 20:58:41 +00:00
ex
exca
fatm
fb Limit the amount of video memory we map for the driver to the maximum value. 2013-03-27 18:06:28 +00:00
fdc
fdt Return "start" and "end" to u_long world. Because rman handle addresses as 2013-03-19 14:15:41 +00:00
fe
filemon
firewire MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
flash
fxp
gem
glxiic
glxsb
gpio
gxemul
hatm
hifn
hme
hpt27xx MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
hptiop Remove ancient compatibility cruft. 2013-04-30 23:36:48 +00:00
hptmv Move hptmv and mpt drivers shutdown a bit later to the SHUTDOWN_PRI_LAST 2013-04-24 19:00:45 +00:00
hptrr Silence warning from clang: 2013-04-28 20:55:45 +00:00
hwpmc Suppress a GCC warning. This warning is actually bogus and newer GCC 2013-05-02 14:55:21 +00:00
ic Add support for A10 uart. 2013-03-01 01:42:31 +00:00
ichsmb
ichwd Don't log a message when the watchdog is reloaded. It's not useful to do so 2013-03-09 15:04:44 +00:00
ida
ie
ieee488
if_ndis
iicbus Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
iir Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
io
ipmi Unlock IPMI sc while performing requests via KCS and SMIC interfaces. 2013-03-25 14:30:34 +00:00
ips Improving r249461 by providing a better way to handle the clang warning. 2013-04-17 21:21:27 +00:00
ipw
isci - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
iscsi/initiator MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
isf
isp MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
ispfw
iwi
iwn
ixgb Update Intel email address. 2013-05-02 01:36:52 +00:00
ixgbe use netmap_rx_irq() / netmap_tx_irq() to handle interrupts in 2013-04-30 16:18:29 +00:00
jme
joy
kbd
kbdmux
ksyms
le
led MFcalloutng: 2013-02-19 19:25:50 +00:00
lge
lindev
lmc Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
malo
mc146818
mca
mcd The other giant locked storage drivers have removed splbio(), for the 2013-02-21 02:34:04 +00:00
md Do not declare that preloaded md(4) supports unmapped bio requests, it 2013-04-02 19:39:31 +00:00
mem
mfi MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
mge
mii For RTL8211B or later PHYs, enable crossover detection and 2013-03-20 05:31:34 +00:00
mk48txx
mlx
mly MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
mmc Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port. 2013-04-27 23:07:49 +00:00
mn
mps Fix uninitialized warning in mps 2013-05-03 10:37:59 +00:00
mpt Move hptmv and mpt drivers shutdown a bit later to the SHUTDOWN_PRI_LAST 2013-04-24 19:00:45 +00:00
mse
msk - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
mvs Make siis(4) and mvs(4) send bus_get_dma_tag() requests to parent buses 2013-04-18 12:43:06 +00:00
mwl
mxge - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
my
nand
ncv
netmap remove trailing whitespace 2013-05-02 16:01:04 +00:00
nfe
nge
nmdm
nsp
ntb Add a new driver to support the Intel Non-Transparent Bridge(NTB). 2013-04-29 22:48:53 +00:00
null
nvd Add unmapped bio support to nvme(4) and nvd(4). 2013-04-01 16:23:34 +00:00
nve
nvme Remove the NVME_IDENTIFY_CONTROLLER and NVME_IDENTIFY_NAMESPACE IOCTLs and replace 2013-04-12 17:56:47 +00:00
nvram
nvram2env
nxge
oce Eliminate excessive $FreeBSD$ headers. 2013-03-08 18:08:12 +00:00
ofw
patm
pbio
pccard
pccbb
pcf
pci Usnure that PCI bus BIS_GET_DMA_TAG() method sees the actual PCI 2013-04-14 14:02:34 +00:00
pcn
pdq
powermac_nvram
ppbus Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
ppc Fix build. 2013-02-21 12:40:52 +00:00
pst
pty
puc Correct the definition for Exar XR17V258IV: we must use a config_function 2013-03-18 19:22:51 +00:00
qlxgb No need to set if_mtu since it automatically updated by ether_ifattach(). 2013-05-08 18:25:46 +00:00
quicc
ral
random Attempt to mitigate poor initialization of arc4 by one-shot 2013-04-19 00:30:52 +00:00
rc
re use netmap_rx_irq() / netmap_tx_irq() to handle interrupts in 2013-04-30 16:18:29 +00:00
rndtest - Correct mispellings of the word occurrence 2013-04-17 11:40:10 +00:00
rp
rt
safe
sbni
scc
scd
sdhci Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port. 2013-04-27 22:38:29 +00:00
sec
sf
sfxge
sge
si Remove incorrect comment about splsoftclock. 2013-02-21 07:19:50 +00:00
siba
siis Make siis(4) and mvs(4) send bus_get_dma_tag() requests to parent buses 2013-04-18 12:43:06 +00:00
sio
sis r119712 introduced SIS_TYPE_83816 but it was not actually set in 2013-03-18 04:46:17 +00:00
sk
smbus
smc
sn
snc
snp
sound Some fixes to snd_envy24ht(4) driver: 2013-05-05 19:09:34 +00:00
speaker
spibus
ste
stg
stge
streams
sym Don't try and negotiate sync mode if either period or offset are zero. 2013-02-25 14:06:24 +00:00
syscons MFcalloutng (r244249, r244306 by mav): 2013-03-04 14:00:58 +00:00
tdfx
terasic
ti
tl
tpm
trm Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
tsec
twa MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
twe
tws MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
tx
txp
uart Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port. 2013-04-27 23:07:49 +00:00
ubsec
usb Fix compile warning. 2013-05-03 13:33:36 +00:00
utopia
vge
viawd
virtio MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
vkbd
vr
vte
vx
vxge
watchdog watchdogd(8) and watchdog(4) enhancements. 2013-02-27 19:03:31 +00:00
wb
wbwd
wds Reform the busdma API so that new types may be added without modifying 2013-02-12 16:57:20 +00:00
wi
wl
wpi
wtap
xe
xen - Correct spelling in comments 2013-04-17 11:56:11 +00:00
xl