On 23-05-18 16:49:46, Frank Li wrote: > Previously, the entire length of the request, which is equal to or greater > than the actual data, was dma synced and memcpy when using the bounce > buffer. Actually only the actual data indicated by request->actual need be > synced and copied. > > Signed-off-by: Frank Li <Frank.Li@xxxxxxx> > --- > drivers/usb/cdns3/cdns3-gadget.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/cdns3/cdns3-gadget.c b/drivers/usb/cdns3/cdns3-gadget.c > index 09a0882a4e97..ea19253fd2d0 100644 > --- a/drivers/usb/cdns3/cdns3-gadget.c > +++ b/drivers/usb/cdns3/cdns3-gadget.c > @@ -809,10 +809,10 @@ void cdns3_gadget_giveback(struct cdns3_endpoint *priv_ep, > /* Make DMA buffer CPU accessible */ > dma_sync_single_for_cpu(priv_dev->sysdev, > priv_req->aligned_buf->dma, > - priv_req->aligned_buf->size, > + request->actual, > priv_req->aligned_buf->dir); > memcpy(request->buf, priv_req->aligned_buf->buf, > - request->length); > + request->actual); > } Acked-by: Peter Chen <peter.chen@xxxxxxxxxx> > > priv_req->flags &= ~(REQUEST_PENDING | REQUEST_UNALIGNED); > -- > 2.34.1 > -- Thanks, Peter Chen