usb: musb: honour the return value of dma_map_single()
Since dma_map_single() may fail it is good to actually check the return code to see if it succeeded. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
5a68e9b57b
commit
7b360f4287
|
@ -76,13 +76,21 @@ static inline void map_dma_buffer(struct musb_request *request,
|
|||
return;
|
||||
|
||||
if (request->request.dma == DMA_ADDR_INVALID) {
|
||||
request->request.dma = dma_map_single(
|
||||
dma_addr_t dma_addr;
|
||||
int ret;
|
||||
|
||||
dma_addr = dma_map_single(
|
||||
musb->controller,
|
||||
request->request.buf,
|
||||
request->request.length,
|
||||
request->tx
|
||||
? DMA_TO_DEVICE
|
||||
: DMA_FROM_DEVICE);
|
||||
ret = dma_mapping_error(musb->controller, dma_addr);
|
||||
if (ret)
|
||||
return;
|
||||
|
||||
request->request.dma = dma_addr;
|
||||
request->map_state = MUSB_MAPPED;
|
||||
} else {
|
||||
dma_sync_single_for_device(musb->controller,
|
||||
|
|
Loading…
Reference in New Issue