Files
linux/drivers/staging/usbip
Eric Lescouet d6890e1842 staging: usbip: Fix deadlock
commit d01f42a22e upstream.

When detaching a port from the client side (usbip --detach 0),
the event thread, on the server side, is going to deadlock.
The "eh" server thread is getting USBIP_EH_RESET event and calls:
  -> stub_device_reset() -> usb_reset_device()
the USB framework is then calling back _in the same "eh" thread_ :
  -> stub_disconnect() -> usbip_stop_eh() -> wait_for_completion()
the "eh" thread is being asleep forever, waiting for its own completion.
This patch checks if "eh" is the current thread, in usbip_stop_eh().

Signed-off-by: Eric Lescouet <eric@lescouet.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-12 14:57:01 -07:00
..
2009-09-15 12:02:05 -07:00
2008-10-10 15:31:09 -07:00
2009-09-15 12:02:05 -07:00
2009-09-15 12:02:05 -07:00
2009-09-15 12:02:05 -07:00
2009-09-15 12:02:05 -07:00
2009-09-15 12:02:05 -07:00
2009-09-15 12:02:05 -07:00
2010-05-12 14:57:01 -07:00
2009-09-15 12:02:05 -07:00
2009-09-15 12:02:05 -07:00
2009-09-15 12:02:05 -07:00

TODO:
	- more discussion about the protocol
	- testing
	- review of the userspace interface

Please send patches for this code to Greg Kroah-Hartman <greg@kroah.com>