diff mbox

[RFC] usb: Check results of dma_map_single

Message ID 4af115c3.JUDAYfcydqPYCYyH%Larry.Finger@lwfinger.net (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Larry Finger Nov. 4, 2009, 5:48 a.m. UTC
None
diff mbox

Patch

Index: linux-2.6/drivers/usb/core/hcd.c
===================================================================
--- linux-2.6.orig/drivers/usb/core/hcd.c
+++ linux-2.6/drivers/usb/core/hcd.c
@@ -1281,6 +1281,13 @@  static int map_urb_for_dma(struct usb_hc
 					urb->setup_packet,
 					sizeof(struct usb_ctrlrequest),
 					DMA_TO_DEVICE);
+			ret = dma_mapping_error(hcd->self.controller,
+						urb->setup_dma);
+			/* warn if DMA mapping failed */
+			if (ret) {
+				WARN_ON(1);
+				return ret;
+			}
 		else if (hcd->driver->flags & HCD_LOCAL_MEM)
 			ret = hcd_alloc_coherent(
 					urb->dev->bus, mem_flags,
@@ -1299,6 +1306,13 @@  static int map_urb_for_dma(struct usb_hc
 					urb->transfer_buffer,
 					urb->transfer_buffer_length,
 					dir);
+			ret = dma_mapping_error(hcd->self.controller,
+						urb->transfer_dma);
+			/* warn if DMA mapping failed */
+			if (ret) {
+				WARN_ON(1);
+				return ret;
+			}
 		else if (hcd->driver->flags & HCD_LOCAL_MEM) {
 			ret = hcd_alloc_coherent(
 					urb->dev->bus, mem_flags,