summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorJules Maselbas <jmaselbas@kalray.eu>2020-08-11 17:16:30 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2020-08-14 14:05:17 +0200
commit7fa069b51120b888005dbc81405cd7837c7dcbd0 (patch)
tree409da19303744de4f6701cc6069ac19999521628 /drivers/usb
parent58593dd67edeed2eb9462b36a4cb565e2d0f36c0 (diff)
downloadbarebox-7fa069b51120b888005dbc81405cd7837c7dcbd0.tar.gz
barebox-7fa069b51120b888005dbc81405cd7837c7dcbd0.tar.xz
usb: dwc2: host: Handle dma mapping errors
Signed-off-by: Jules Maselbas <jmaselbas@kalray.eu> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/dwc2/host.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/dwc2/host.c b/drivers/usb/dwc2/host.c
index 36ac77d130..3d135cd6a6 100644
--- a/drivers/usb/dwc2/host.c
+++ b/drivers/usb/dwc2/host.c
@@ -157,6 +157,11 @@ static int transfer_chunk(struct dwc2 *dwc2, u8 hc,
dma_addr = dma_map_single(dwc2->dev, buffer, xfer_len,
in ? DMA_FROM_DEVICE : DMA_TO_DEVICE);
+ if (dma_mapping_error(dwc2->dev, dma_addr)) {
+ dwc2_err(dwc2, "Failed to map buffer@0x%p for dma\n", buffer);
+ return -EFAULT;
+ }
+
dwc2_dbg(dwc2, "chunk: pid=%d xfer_len=%u pkts=%u dma_addr=%pad\n",
*pid, xfer_len, num_packets, (void *)dma_addr);