usb: chipidea: udc: don't truncate requests to single tds
It is not safe to truncate requests to the maximum possible size the controller can handle with one td and to keep working. That patch fixes that with proper error handling instead. Reported-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
9e5064384a
commit
24dcade163
|
@ -1158,9 +1158,9 @@ static int ep_queue(struct usb_ep *ep, struct usb_request *req,
|
|||
}
|
||||
|
||||
if (req->length > 4 * CI13XXX_PAGE_SIZE) {
|
||||
req->length = 4 * CI13XXX_PAGE_SIZE;
|
||||
retval = -EMSGSIZE;
|
||||
dev_warn(mEp->ci->dev, "request length truncated\n");
|
||||
dev_err(mEp->ci->dev, "request bigger than one td\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* push request */
|
||||
|
|
Loading…
Reference in New Issue