MFC r267240:
authorhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 11 Jun 2014 06:45:52 +0000 (06:45 +0000)
committerhselasky <hselasky@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 11 Jun 2014 06:45:52 +0000 (06:45 +0000)
commitfb3373001b1572be2d1f93cf5a737f7c88fec10c
tree8599b7a625bffaa19fa1a6521029ba2e440f57f5
parent062eb9f3f20acf51d85b269c51653619ba0ff574
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.

Approved by: re, marius @

git-svn-id: svn://svn.freebsd.org/base/stable/9@267350 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