summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorMayank Rana <mrana@codeaurora.org>2015-06-26 14:43:21 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 19:58:19 -0700
commit3cbb89d1a4ffe1a4449090ca769f2ce575e9d2c1 (patch)
tree593dee663fc7ad565a3c031af2574e064eef937d /drivers/usb
parent1ec29eb231edf121ae66e8925a4be9946e3a766d (diff)
usb: u_data_bridge: Return error when no USB TX request available
In some cases, it has been observed that all USB TX requests are queued with USB controller and port bridge is trying to write data. gbridge_port_write() API is returning zero (success of data) instead of error code which results into data loss. Hence return -EAGAIN when there is no USB TX request available. Also mark this error as non-fatal by using pr_debug() here. Change-Id: Id56788b372b62a005448a729e5f00de6fb895e47 Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/function/u_data_bridge.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/gadget/function/u_data_bridge.c b/drivers/usb/gadget/function/u_data_bridge.c
index c4ef3e84edea..6d3c60d7ea70 100644
--- a/drivers/usb/gadget/function/u_data_bridge.c
+++ b/drivers/usb/gadget/function/u_data_bridge.c
@@ -451,8 +451,8 @@ ssize_t gbridge_port_write(struct file *file,
if (list_empty(&port->write_pool)) {
spin_unlock_irqrestore(&port->port_lock, flags);
- pr_err("%s: Request list is empty.\n", __func__);
- return 0;
+ pr_debug("%s: Request list is empty.\n", __func__);
+ return -EAGAIN;
}
pool = &port->write_pool;
req = list_first_entry(pool, struct usb_request, list);