In adb_read(), if wait_event_interruptible() returns an error, we need to
remove the request from the EP queue. Else, on the next call to adb_read(), we
will attempt to enqueue the request again, potentially corrupting the
queue. This is what happens with musb_gadget_queue(), which does not check for
duplicate requests.
Signed-off-by: Iliyan Malchev <malchev@google.com>
if (ret < 0) {
dev->error = 1;
r = ret;
+ usb_ep_dequeue(dev->ep_out, req);
goto done;
}
if (!dev->error) {