usb: musb: gadget: do *unmap_dma_buffer* only for valid DMA addr
authorKishon Vijay Abraham I <kishon@ti.com>
Fri, 15 Mar 2013 13:28:50 +0000 (18:58 +0530)
committerFelipe Balbi <balbi@ti.com>
Mon, 18 Mar 2013 08:18:28 +0000 (10:18 +0200)
commit06d9db7273c7bd5b07624b313faeea57a4b31056
treebcb20fc04852788f9fcabbf88585d26d18bd309d
parent273daf2f2ab9f42d82f017b20fcf902ec8d7cffa
usb: musb: gadget: do *unmap_dma_buffer* only for valid DMA addr

musb does not use DMA buffer for ep0 but it uses the same giveback
function *musb_g_giveback* for all endpoints (*musb_g_ep0_giveback* calls
*musb_g_giveback*). So for ep0 case request.dma will be '0'
and will result in kernel OOPS if tried to *unmap_dma_buffer* for requests in
ep0. Fixed it by doing *unmap_dma_buffer* only for valid DMA addr and
checking that musb_ep->dma is valid when unmapping.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musb_gadget.c