linux/drivers/usb/wusbcore
Thomas Pugliese 275e517c30 usb: wusbcore: fix device disconnect on rekey timeout
If three or more wireless devices are connected and two of them
disconnect between 1-3 seconds apart, it can cause the HWA to disconnect
the remaining devices due to failing to see a DN_Alive message from
them.  This happens because when the HWA detects that the first device
is gone, it will attempt to rekey the remaining devices.  If one of the
devices is not responding because it has also been disconnected but not
yet timed out, the synchronous rekey operation running on the wusbd
workqueue can block for up to 5 seconds.  This will prevent the
KEEPALIVE timer from running and DN_Alive messages from being processed
because they are processed by the same workqueue.  This patch moves the
rekey operation to a separate workqueue since it is the only wusb work
item that needs to communicate directly with wireless devices.  The rest
of the WUSB work items either perform no device IO or communicate
directly with the host controller and should not be blocked out by a
non-responding wireless device.

Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-09-23 22:06:59 -07:00
..
cbaf.c USB: wusbcore: fix up minor coding style issues in cbaf.c 2014-01-07 16:18:42 -08:00
crypto.c wusb: delete double assignment 2014-09-23 22:03:54 -07:00
dev-sysfs.c uwb: use dev_dbg() for debug messages 2008-12-22 18:22:50 +00:00
devconnect.c usb: wusbcore: fix compile warnings 2014-02-28 20:23:03 -08:00
Kconfig usb: wusbcore: USB_WUSB_CBAF depends on USB 2014-09-23 22:06:33 -07:00
Makefile usb: makefile cleanup 2010-10-22 10:22:07 -07:00
mmc.c usb: wusbcore: fix panic in wusbhc_chid_set 2014-04-24 12:45:41 -07:00
pal.c usb: wusbcore: add debug prints to reservation and channel change 2013-12-20 12:06:46 -08:00
reservation.c usb: wusbcore: add debug prints to reservation and channel change 2013-12-20 12:06:46 -08:00
rh.c wusbcore: fix root hub hub_status_data to only return > 0 if status has actually changed 2013-08-12 13:13:32 -07:00
security.c usb: wusbcore: fix device disconnect on rekey timeout 2014-09-23 22:06:59 -07:00
wa-hc.c usb: wusbcore: use multiple urbs for HWA iso transfer result frame reads 2014-03-08 22:30:28 -08:00
wa-hc.h usb: wusbcore: use multiple urbs for HWA iso transfer result frame reads 2014-03-08 22:30:28 -08:00
wa-nep.c USB: wusbcore: fix up coding style issues in wa-nep.c 2014-01-07 16:19:31 -08:00
wa-rpipe.c USB: wusbcore: fix control-pipe directions 2014-05-27 15:04:10 -07:00
wa-xfer.c usb: wusbcore: skip done segs before completing aborted transfer 2014-09-23 22:06:59 -07:00
wusbhc.c USB: wusbcore: fix up coding style issues in wusbhc.c and wusbhc.h 2014-01-07 16:19:31 -08:00
wusbhc.h usb: wusbcore: fix device disconnect on rekey timeout 2014-09-23 22:06:59 -07:00