MFC r267240:
authorhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 11 Jun 2014 05:39:08 +0000 (05:39 +0000)
committerhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 11 Jun 2014 05:39:08 +0000 (05:39 +0000)
commit3d23ed9c0b51078997d15dc0ef3b440e29b7deaa
tree48132ba6c7f1af2727c50cd208afbfc29b212dd5
parentc8832d9db0adcc4588a0069b73d671ed61fe472f
MFC r267240:
Resolve a deadlock setting the USB configuration index from userspace
on USB HUBs by moving the code into the USB explore threads. The
deadlock happens because child devices of the USB HUB don't have the
expected reference count when called from outside the explore
thread. Only the HUB device itself, which the IOCTL interface locks,
gets the correct reference count.

git-svn-id: svn://svn.freebsd.org/base/stable/10@267347 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/usb/controller/usb_controller.c
sys/dev/usb/usb_dev.c
sys/dev/usb/usb_device.h
sys/dev/usb/usb_generic.c
sys/dev/usb/usb_hub.c
sys/dev/usb/usb_hub.h
sys/dev/usb/usbdi.h