From 170229d19586955e30604b2de37557e09a70b66c Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Thu, 16 Oct 2014 06:35:27 -0500 Subject: [PATCH] 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 Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/es1-ap-usb.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/staging/greybus/es1-ap-usb.c b/drivers/staging/greybus/es1-ap-usb.c index 1a67d9e15c2a..e55ad03b56d6 100644 --- a/drivers/staging/greybus/es1-ap-usb.c +++ b/drivers/staging/greybus/es1-ap-usb.c @@ -305,10 +305,9 @@ static void cport_in_callback(struct urb *urb) 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 @@ static void cport_out_callback(struct urb *urb) 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. -- 2.39.5