From 30f0d2b44e79382acd6ffce31f71cab7cf77e90f Mon Sep 17 00:00:00 2001 From: Kishon Vijay Abraham I Date: Fri, 15 Mar 2013 18:58:50 +0530 Subject: [PATCH] --- yaml --- r: 361631 b: refs/heads/master c: 06d9db7273c7bd5b07624b313faeea57a4b31056 h: refs/heads/master i: 361629: a88c690466a2361c935035121d0756156bd3fb77 361627: bfa547ce83cab60dba8348cb31c7c7990fb0c95a 361623: 12081842c4ebc3694eafe242aa6ac1c26c38ca9f 361615: 4bbc9a79e6e46d8ea7caf24963a88b5329d54d31 361599: 445f1b17339f46853e985191abfbc3f09f065cd8 v: v3 --- [refs] | 2 +- trunk/drivers/usb/musb/musb_gadget.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 87ff79c5ede6..4323c9397a22 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 273daf2f2ab9f42d82f017b20fcf902ec8d7cffa +refs/heads/master: 06d9db7273c7bd5b07624b313faeea57a4b31056 diff --git a/trunk/drivers/usb/musb/musb_gadget.c b/trunk/drivers/usb/musb/musb_gadget.c index be18537c5f14..83eddedcd9be 100644 --- a/trunk/drivers/usb/musb/musb_gadget.c +++ b/trunk/drivers/usb/musb/musb_gadget.c @@ -141,7 +141,9 @@ static inline void map_dma_buffer(struct musb_request *request, static inline void unmap_dma_buffer(struct musb_request *request, struct musb *musb) { - if (!is_buffer_mapped(request)) + struct musb_ep *musb_ep = request->ep; + + if (!is_buffer_mapped(request) || !musb_ep->dma) return; if (request->request.dma == DMA_ADDR_INVALID) { @@ -195,7 +197,10 @@ __acquires(ep->musb->lock) ep->busy = 1; spin_unlock(&musb->lock); - unmap_dma_buffer(req, musb); + + if (!dma_mapping_error(&musb->g.dev, request->dma)) + unmap_dma_buffer(req, musb); + if (request->status == 0) dev_dbg(musb->controller, "%s done request %p, %d/%d\n", ep->end_point.name, request,