Always allow abort tasks to be scheduled, even if the device is beeing
authormpi <mpi@openbsd.org>
Tue, 13 Jan 2015 16:03:18 +0000 (16:03 +0000)
committermpi <mpi@openbsd.org>
Tue, 13 Jan 2015 16:03:18 +0000 (16:03 +0000)
commit4eeca767fcb716de02b5bd9d8b9aff3787d6e665
tree813e6555f2a39439fdf47b382c2f8e462cad3ea6
parentaa81f020de35cff1fe48dd4d4fef9eb0dcc65a37
Always allow abort tasks to be scheduled, even if the device is beeing
detached, in order to prevent a deadlock situation.

This situation can occur if the thread detaching a device is sleeping,
waiting for all submitted transfers to finish, and the device's pipes
have not yet been aborted.  This can happen when a USB Ethernet device
is being detached while a userland program is doing an ioctl(2).

Abort tasks need to be able to run in such case since timed out transfers
rely on them to be properly completed.

ok deraadt@
sys/dev/usb/usb.c