usb: gadget: adb: allow freezing in adb_read
authorColin Cross <ccross@android.com>
Mon, 5 Mar 2012 21:29:45 +0000 (13:29 -0800)
committerJohn Stultz <john.stultz@linaro.org>
Tue, 16 Feb 2016 21:51:53 +0000 (13:51 -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 5415353ab2c14185c463fe6a6a93647eed97b45b..4433a4dbdfb100105daae746e8bee18103a26dc4 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;