greybus: don't restrict input buffer size
Don't assume that input buffers have any particular content. The
only thing the gbuf layer needs to be concerned with is the presence
of the cport_id byte at the beginning of a transfer.
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
diff --git a/drivers/staging/greybus/es1-ap-usb.c b/drivers/staging/greybus/es1-ap-usb.c
index 1a67d9e..e55ad03 100644
--- a/drivers/staging/greybus/es1-ap-usb.c
+++ b/drivers/staging/greybus/es1-ap-usb.c
@@ -305,10 +305,9 @@
if (status)
return;
- /* The size has to be more then just an "empty" transfer */
- if (urb->actual_length <= 2) {
- dev_err(dev, "%s: \"short\" cport in transfer of %d bytes?\n",
- __func__, urb->actual_length);
+ /* The size has to be at least one, for the cport id */
+ if (!urb->actual_length) {
+ dev_err(dev, "%s: no cport id in input buffer?\n", __func__);
goto exit;
}
@@ -338,10 +337,6 @@
unsigned long flags;
int i;
- /* If no error, tell the core the gbuf is properly sent */
- if (!check_urb_status(urb))
- greybus_gbuf_finished(gbuf);
-
/*
* See if this was an urb in our pool, if so mark it "free", otherwise
* we need to free it ourselves.