diff options
author | Mayank Rana <mrana@codeaurora.org> | 2015-06-26 14:43:21 -0700 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 19:58:19 -0700 |
commit | 3cbb89d1a4ffe1a4449090ca769f2ce575e9d2c1 (patch) | |
tree | 593dee663fc7ad565a3c031af2574e064eef937d /drivers/usb | |
parent | 1ec29eb231edf121ae66e8925a4be9946e3a766d (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.c | 4 |
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); |