usb: dwc3: unmap the proper number of sg entries
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Tue, 24 Jan 2012 11:44:34 +0000 (12:44 +0100)
committerFelipe Balbi <balbi@ti.com>
Tue, 24 Jan 2012 13:43:17 +0000 (15:43 +0200)
num_sgs contains the number of sgs assigned by the gadget.
num_mapped_sgs contains the number of mapped sgs which may differ from
the gadget's values. For dma_unmap_sg() we have to provide the value
which was returned by dma_map_sg().

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc3/gadget.c

index a696bde5322268013819ac43d9059da653d9c045..064b6e2cd4118635508a1dcc4eddfd63e3d08189 100644 (file)
@@ -101,7 +101,7 @@ void dwc3_unmap_buffer_from_dma(struct dwc3_request *req)
        if (req->request.num_mapped_sgs) {
                req->request.dma = DMA_ADDR_INVALID;
                dma_unmap_sg(dwc->dev, req->request.sg,
-                               req->request.num_sgs,
+                               req->request.num_mapped_sgs,
                                req->direction ? DMA_TO_DEVICE
                                : DMA_FROM_DEVICE);