usb: gadget: adb: allow freezing in adb_read
Colin Cross [Mon, 5 Mar 2012 21:29:45 +0000 (13:29 -0800)]
wait_event_interruptible in adb_read might return -ERESTARTSYS if
userspace is frozen during adb_read or another signal is delivered
to adb.  If so, don't set dev->error to avoid resetting the adb
connection.

Change-Id: I5a7baa013a9a3a3b5305de7e6a0d18546a560018
Signed-off-by: Colin Cross <ccross@android.com>

drivers/usb/gadget/f_adb.c

index 5415353..4433a4d 100644 (file)
@@ -313,7 +313,8 @@ requeue_req:
        /* wait for a request to complete */
        ret = wait_event_interruptible(dev->read_wq, dev->rx_done);
        if (ret < 0) {
-               dev->error = 1;
+               if (ret != -ERESTARTSYS)
+                       dev->error = 1;
                r = ret;
                usb_ep_dequeue(dev->ep_out, req);
                goto done;