From: Colin Cross <ccross@android.com>
Date: Mon, 5 Mar 2012 21:29:45 +0000 (-0800)
Subject: usb: gadget: adb: allow freezing in adb_read
X-Git-Tag: firefly_0821_release~4090^2~780
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=676d6ebb9d7bcf3f45e8ef8212ddc739d445c5c2;p=firefly-linux-kernel-4.4.55.git

usb: gadget: adb: allow freezing in adb_read

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>
---

diff --git a/drivers/usb/gadget/f_adb.c b/drivers/usb/gadget/f_adb.c
index 5415353ab2c1..4433a4dbdfb1 100644
--- a/drivers/usb/gadget/f_adb.c
+++ b/drivers/usb/gadget/f_adb.c
@@ -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;