freebsd-dev/sys
Hans Petter Selasky 64cb5e2a26 Resolve deadlock between device_detach() and usbd_do_request_flags()
by reviving the SX control request lock and refining which lock
protects the common scratch area in "struct usb_device".

The SX control request lock was removed by r246759 because it caused a
lock order reversal with the USB enumeration lock inside
usbd_transfer_setup() as a function of r246616. It was thought that
reducing the number of locks would resolve the LOR, but because some
USB device drivers use usbd_do_request_flags() inside callback
functions, like in taskqueues, a deadlock may occur when these are
drained from device_detach(). By restoring the SX control request
lock usbd_do_request_flags() is allowed to complete its execution
when a USB device driver is detaching. By using the SX control request
lock to protect the scratch area, the LOR introduced by r246616 is
also resolved.

Bump the FreeBSD version while at it to force recompilation of all USB
kernel modules.

Found by:	avos@
MFC after:	1 week
2016-09-05 15:35:58 +00:00
..
amd64 Remove support for idle page zeroing. 2016-09-03 20:38:13 +00:00
arm Add sy8106a to Allwinner kernel. This regulator is used to control VDD_CPUX 2016-09-05 13:45:45 +00:00
arm64 Enable superpages on arm64 by default. These seem to be stable, having 2016-09-04 17:50:23 +00:00
boot A64 thermal sensor IRQ is GIC_SPI 31, not 41. 2016-09-04 22:30:46 +00:00
bsm
cam Decode some new ATA commands found in ACS-3. 2016-08-27 19:51:37 +00:00
cddl Missed FreeBSD-specific piece of r305338. 2016-09-03 11:17:33 +00:00
compat Add missing header dependency. 2016-08-24 09:57:19 +00:00
conf Make some additional -Wconstant-conversion warnings from clang 3.9.0 in 2016-09-04 17:56:55 +00:00
contrib Update VCHIQ driver to upstream version 4eda74f2 2016-08-31 01:04:57 +00:00
crypto Connect the SHA-512t256 and Skein hashing algorithms to ZFS 2016-05-31 04:12:14 +00:00
ddb Expand error messages: print symbol names, parentheses and shift tokens, 2016-08-28 19:33:09 +00:00
dev Resolve deadlock between device_detach() and usbd_do_request_flags() 2016-09-05 15:35:58 +00:00
fs Implement VOP_FDATASYNC() for msdosfs. 2016-08-15 19:17:00 +00:00
gdb
geom Do not invoke resize event if initial disk size is zero. Some disks 2016-08-01 20:54:54 +00:00
gnu Revert changes for local testing, inadvertantly commited in r300811. 2016-05-26 23:59:42 +00:00
i386 Remove support for idle page zeroing. 2016-09-03 20:38:13 +00:00
isa
kern cache: defer freeing entries until after the global lock is dropped 2016-09-04 16:52:14 +00:00
kgssapi
libkern
mips Migrate bhndb(4) to the new bhnd_erom API. 2016-09-04 00:58:19 +00:00
modules Make some additional -Wconstant-conversion warnings from clang 3.9.0 in 2016-09-04 17:56:55 +00:00
net net/rndis: Define RNDIS status message, which could be sent by device. 2016-09-05 04:56:56 +00:00
net80211 [net80211] correctly lock the ifp before accessing the lladdr. 2016-08-18 01:25:12 +00:00
netgraph Avoid panic from ng_uncallout when unpluggin ethernet cable with active 2016-08-08 19:31:01 +00:00
netinet With clang 3.9.0, compiling sys/netinet/igmp.c results in the following 2016-09-04 17:23:10 +00:00
netinet6 Fix L2 caching for UDP over IPv6 2016-08-24 00:52:30 +00:00
netipsec Remove redundant sanity checks from ipsec[46]_common_input_cb(). 2016-08-31 11:51:52 +00:00
netnatm
netpfil Try to fix gcc compilation errors (which are right). 2016-08-18 10:26:15 +00:00
netsmb
nfs Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
nfsclient
nfsserver
nlm When sleeping waiting for either local or remote advisory lock, 2016-06-26 20:08:42 +00:00
ofed Do not free an uninitialized pointer on soaccept failure in the iWARP 2016-08-26 08:25:28 +00:00
opencrypto opencrypto AES-ICM: Fix heap corruption typo 2016-08-01 22:57:03 +00:00
pc98 Remove the ie(4) driver for Intel 82586 ISA Ethernet adapters. 2016-08-20 00:49:29 +00:00
powerpc Remove support for idle page zeroing. 2016-09-03 20:38:13 +00:00
riscv Remove support for idle page zeroing. 2016-09-03 20:38:13 +00:00
rpc Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
security Audit the accepted (or rejected) username argument to setlogin(2). 2016-08-20 20:28:08 +00:00
sparc64 Replace the number 4 in pmap_ts_referenced() by PMAP_TS_REFERENCED_MAX, 2016-09-04 22:08:04 +00:00
sys Resolve deadlock between device_detach() and usbd_do_request_flags() 2016-09-05 15:35:58 +00:00
teken
tests
tools Consider CROSS_BINUTILS_PREFIX environment variable so we use correct 2016-08-10 13:49:17 +00:00
ufs Bug 211013 reports that a write error to a UFS filesystem running 2016-08-16 21:02:30 +00:00
vm Respect the caller's hints when performing swap readahead. 2016-09-04 00:25:49 +00:00
x86 Fix build for !SMP kernels after the Xen MSIX workaround. 2016-08-22 21:23:17 +00:00
xdr
xen xen: Correct typo in #undef for symbol NBPL 2016-06-06 14:55:46 +00:00
Makefile