History log of /freebsd-10-stable/sys/dev/usb/usb_dev.c
Revision Date Author Comments
# 301253 03-Jun-2016 hselasky

MFC r300667:
Check for signals when locking the USB enumeration thread from
userspace, so that USB applications can be killed if an enumeration
thread should be stuck for various reasons.


# 284500 17-Jun-2015 hselasky

MFC r284011:
Don't wait forever for USB data to be flushed.


# 278289 05-Feb-2015 hselasky

MFC r277136:
Resolve a special case deadlock: When two or more threads are
simultaneously detaching kernel drivers on the same USB device we can
get stuck in the "usb_wait_pending_ref_locked()" function because the
conditions needed for allowing detach are not met.

While at it ensure that "flag_iserror" is only written when "priv_mtx"
is locked, which is protecting it.


# 272592 06-Oct-2014 hselasky

MFC r272480:
When we fail to get a USB reference we should just return, because
there are no more references held.


# 267347 11-Jun-2014 hselasky

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.


# 263799 27-Mar-2014 hselasky

MFC r263423:
Try to resolve a possible deadlock when detaching USB devices which
create character devices. The deadlock can happen if an application is
issuing IOCTLs which require USB refcounting, at the same time the USB
device is detaching.

There is already a counter in place in the USB device structure to
detect this situation, but it was not always checked ahead of invoking
functions that might destroy character devices, like detach, set
configuration, set alternate interface or detach active kernel driver.


# 263162 14-Mar-2014 hselasky

MFC r262550, r262551 and r262554:
Add support for kqfilter to USB character devices.


# 261468 04-Feb-2014 hselasky

MFC r261123:
Reduce dmesg verbosity.


# 261110 24-Jan-2014 hselasky

MFC r260808 and r260814:
- Close a minor deadlock.
- Fix a possible memory use after free and leak situation associated
with USB device detach when using character device handles. This also
includes LibUSB. It turns out that "usb_close()" cannot always get a
reference to clean up its USB transfers and such, if called during the
kernel USB device detach.


# 257375 30-Oct-2013 hselasky

MFC r257206:
Fix a deadlock when trying to power off a USB device. The deadlock
happens because the code in question is trying to modify the parent
USB port registers outside the USB explore thread.

Approved by: re (glebius)


# 284500 17-Jun-2015 hselasky

MFC r284011:
Don't wait forever for USB data to be flushed.


# 278289 05-Feb-2015 hselasky

MFC r277136:
Resolve a special case deadlock: When two or more threads are
simultaneously detaching kernel drivers on the same USB device we can
get stuck in the "usb_wait_pending_ref_locked()" function because the
conditions needed for allowing detach are not met.

While at it ensure that "flag_iserror" is only written when "priv_mtx"
is locked, which is protecting it.


# 272592 06-Oct-2014 hselasky

MFC r272480:
When we fail to get a USB reference we should just return, because
there are no more references held.


# 267347 11-Jun-2014 hselasky

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.


# 263799 27-Mar-2014 hselasky

MFC r263423:
Try to resolve a possible deadlock when detaching USB devices which
create character devices. The deadlock can happen if an application is
issuing IOCTLs which require USB refcounting, at the same time the USB
device is detaching.

There is already a counter in place in the USB device structure to
detect this situation, but it was not always checked ahead of invoking
functions that might destroy character devices, like detach, set
configuration, set alternate interface or detach active kernel driver.


# 263162 14-Mar-2014 hselasky

MFC r262550, r262551 and r262554:
Add support for kqfilter to USB character devices.


# 261468 04-Feb-2014 hselasky

MFC r261123:
Reduce dmesg verbosity.


# 261110 24-Jan-2014 hselasky

MFC r260808 and r260814:
- Close a minor deadlock.
- Fix a possible memory use after free and leak situation associated
with USB device detach when using character device handles. This also
includes LibUSB. It turns out that "usb_close()" cannot always get a
reference to clean up its USB transfers and such, if called during the
kernel USB device detach.


# 257375 30-Oct-2013 hselasky

MFC r257206:
Fix a deadlock when trying to power off a USB device. The deadlock
happens because the code in question is trying to modify the parent
USB port registers outside the USB explore thread.

Approved by: re (glebius)