staging: usbip: vhci: handle EAGAIN from SO_RCVTIMEO
commitbd65f6233f6bc3233e7910752689fe3a45dc2e0c
authorMax Vozeler <max@vozeler.com>
Wed, 12 Jan 2011 13:02:04 +0000 (12 15:02 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 21 Jan 2011 00:01:49 +0000 (20 16:01 -0800)
tree40cf7fc453f735f006ab4d2a97549abfe1d9e9e0
parent7e249c8b0737429bbf534515f81aded93504f449
staging: usbip: vhci: handle EAGAIN from SO_RCVTIMEO

If there is a receive timeout without any active
requests, we can tell the connection was idle and
ignore the timeout.

If there are active requests for which we expect
to receive a reply we close the connection.

This makes it possible to set an upper bound on
the time a usbip device may be unresponsive.

This is a workaround for the lack of heart-beat
messages in the USBIP protocol.

Extending the protocol would break compatibility
with all previous stub versions, so this seems like
the lesser evil.

Signed-off-by: Max Vozeler <max@vozeler.com>
Tested-by: Mark Wehby <MWehby@luxotticaRetail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/usbip/vhci_rx.c