freebsd-dev/sys/dev/usb
Hans Petter Selasky 0eb8d46232 Improve USB polling mode by not locking any mutexes, asserting any
mutexes or using any callouts when active.

Trying to lock a mutex when KDB is active or the scheduler is stopped
can result in infinite wait loops. The same goes for calling callout
related functions which in turn lock mutexes.

If the USB controller at which a USB keyboard is connected is idle
when KDB is entered, polling the USB keyboard via USB will always
succeed. Else polling may fail depending on which state the USB
subsystem and USB interrupt handler is in. This is unavoidable unless
KDB can wait for USB interrupt threads to complete before stalling the
CPU(s).

Tested by:	Bruce Evans <bde@freebsd.org>
MFC after:	4 weeks
2016-09-14 12:07:34 +00:00
..
controller Don't separate the status stage of the XHCI USB control transfers into 2016-08-22 19:32:50 +00:00
gadget
input Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
misc dev/usb: minor spelling fixes in comments. 2016-05-02 17:44:03 +00:00
net net/rndis: Packet types are defined by NDIS; not RNDIS specific. 2016-08-30 03:11:07 +00:00
quirk Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
serial Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
storage Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
template Resolve deadlock between device_detach() and usbd_do_request_flags() 2016-09-05 15:35:58 +00:00
video
wlan rum: fix possible panic on device detach (similar to r302034). 2016-09-07 16:19:20 +00:00
ufm_ioctl.h
uftdiio.h
uled_ioctl.h
usb_bus.h
usb_busdma.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_busdma.h
usb_cdc.h dev/usb: minor spelling fixes in comments. 2016-05-02 17:44:03 +00:00
usb_controller.h
usb_core.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_core.h Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_debug.c
usb_debug.h
usb_dev.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_dev.h
usb_device.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_device.h Resolve deadlock between device_detach() and usbd_do_request_flags() 2016-09-05 15:35:58 +00:00
usb_dynamic.c
usb_dynamic.h
usb_endian.h
usb_error.c
usb_freebsd_loader.h Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_freebsd.h Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_generic.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_generic.h
usb_handle_request.c dev/usb: minor spelling fixes in comments. 2016-05-02 17:44:03 +00:00
usb_hid.c dev/usb: minor spelling fixes in comments. 2016-05-02 17:44:03 +00:00
usb_hub.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_hub.h
usb_if.m
usb_ioctl.h
usb_lookup.c
usb_mbuf.c
usb_mbuf.h
usb_msctest.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_msctest.h
usb_parse.c
usb_pci.h
usb_pf.c
usb_pf.h
usb_process.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_process.h
usb_request.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_request.h
usb_transfer.c Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usb_transfer.h
usb_util.c Resolve deadlock between device_detach() and usbd_do_request_flags() 2016-09-05 15:35:58 +00:00
usb_util.h
usb.h
usbdevs Add Logitech Unifying receiver. 2016-08-06 20:27:12 +00:00
usbdi_util.h
usbdi.h Improve USB polling mode by not locking any mutexes, asserting any 2016-09-14 12:07:34 +00:00
usbhid.h