freebsd-dev/sys
Adrian Chadd 7561cb5c8b Wrap the whole (software) TX path from ifnet dequeue to software queue
(or direct dispatch) behind the TXQ lock (which, remember, is doubling
as the TID lock too for now.)

This ensures that:

 (a) the sequence number and the CCMP PN allocation is done together;
 (b) overlapping transmit paths don't interleave frames, so we don't
     end up with the original issue that triggered kern/166190.

     Ie, that we don't end up with seqno A, B in thread 1, C, D in
     thread 2, and they being queued to the software queue as "A C D B"
     or similar, leading to the BAW stalls.

This has been tested:

* both STA and AP modes with INVARIANTS and WITNESS;
* TCP and UDP TX;
* both STA->AP and AP->STA.

STA is a Routerstation Pro (single CPU MIPS) and the AP is a dual-core
Centrino.

PR:		kern/166190
2012-06-11 07:44:16 +00:00
..
amd64 Some fixes for r236772. 2012-06-10 02:38:51 +00:00
arm Remove an unneeded increment from initarm. The variable is uninitialised, 2012-06-10 10:40:22 +00:00
boot The loaddev environment variable is not modifiable once set, so it is not 2012-06-04 20:56:40 +00:00
bsm
cam One more major cam_periph_error() rewrite to improve error handling and 2012-06-09 13:07:44 +00:00
cddl ds_guid of 0 is special, as it is used by snapshot receive code to 2012-06-09 20:16:19 +00:00
compat Make sure that each va_start has one and only one matching va_end, 2012-05-29 01:48:06 +00:00
conf Some fixes for r236772. 2012-06-10 02:38:51 +00:00
contrib Merge revision 1.715 from OpenBSD: 2012-06-06 09:36:52 +00:00
crypto
ddb
dev Wrap the whole (software) TX path from ifnet dequeue to software queue 2012-06-11 07:44:16 +00:00
fs Improve handling of uiomove(9) errors for the NFS client. 2012-06-06 16:30:16 +00:00
gdb
geom Add missing newlines into XML output. 2012-06-05 16:46:34 +00:00
gnu/fs
i386 Some fixes for r236772. 2012-06-10 02:38:51 +00:00
ia64 Improve style(9) in the previous commit. 2012-06-01 17:07:52 +00:00
isa
kern Remove redundant include. 2012-06-10 20:24:01 +00:00
kgssapi
libkern
mips
modules Only build filemon(4) on x86. 2012-06-05 17:44:54 +00:00
net Fix typo introduced in r236559. 2012-06-09 10:04:40 +00:00
net80211
netatalk
netgraph Revert my local not yet properly tested changes, that leaked in 2012-05-25 07:46:24 +00:00
netinet Validate IPv4 network mask being passed to ipfw kernel interface. 2012-06-09 17:39:05 +00:00
netinet6 Plug two interface address refcount leaks in early error return cases 2012-06-05 13:27:37 +00:00
netipsec
netipx
netnatm
netncp Add characters mapping for codepages used in Germany. 2012-06-01 03:59:08 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed
opencrypto
pc98
pci
powerpc Panic openly if we cannot retrieve memory information from the device tree. 2012-05-30 18:05:48 +00:00
rpc
security
sparc64 Replace all uses of the vm page queues lock by a r/w lock that is private 2012-05-29 01:52:38 +00:00
sys Add x86/acpica/acpi_wakeup.c for amd64 and i386. Difference of 2012-06-09 00:37:26 +00:00
teken
tools
ufs Enable vn_io_fault() lock avoidance for UFS. 2012-05-30 16:45:41 +00:00
vm Use the previous stack entry protection and max protection to correctly 2012-06-10 11:31:50 +00:00
x86 Add x86/acpica/acpi_wakeup.c for amd64 and i386. Difference of 2012-06-09 00:37:26 +00:00
xdr
xen
Makefile