usb: gadget: pch_udc: Check for DMA mapping error
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 23 Mar 2021 15:36:22 +0000 (17:36 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 May 2021 08:40:23 +0000 (10:40 +0200)
[ Upstream commit 4a28d77e359009b846951b06f7c0d8eec8dce298 ]

DMA mapping might fail, we have to check it with dma_mapping_error().
Otherwise DMA-API is not happy:

  DMA-API: pch_udc 0000:02:02.4: device driver failed to check map error[device address=0x00000000027ee678] [size=64 bytes] [mapped as single]

Fixes: abab0c67c061 ("usb: pch_udc: Fixed issue which does not work with g_serial")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210323153626.54908-3-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/gadget/udc/pch_udc.c

index 2363e3f666470d0765a71a5dc2586566acebe5a9..18ce19162804bdf5d0c4cc2ef3e9c6ad0f75ad0b 100644 (file)
@@ -2977,7 +2977,7 @@ static int init_dma_pools(struct pch_udc_dev *dev)
        dev->dma_addr = dma_map_single(&dev->pdev->dev, ep0out_buf,
                                       UDC_EP0OUT_BUFF_SIZE * 4,
                                       DMA_FROM_DEVICE);
-       return 0;
+       return dma_mapping_error(&dev->pdev->dev, dev->dma_addr);
 }
 
 static int pch_udc_start(struct usb_gadget *g,