|
@@ -817,7 +817,15 @@ int ioat_dma_self_test(struct ioatdma_device *device)
|
|
|
}
|
|
|
|
|
|
dma_src = dma_map_single(dev, src, IOAT_TEST_SIZE, DMA_TO_DEVICE);
|
|
|
+ if (dma_mapping_error(dev, dma_src)) {
|
|
|
+ dev_err(dev, "mapping src buffer failed\n");
|
|
|
+ goto free_resources;
|
|
|
+ }
|
|
|
dma_dest = dma_map_single(dev, dest, IOAT_TEST_SIZE, DMA_FROM_DEVICE);
|
|
|
+ if (dma_mapping_error(dev, dma_dest)) {
|
|
|
+ dev_err(dev, "mapping dest buffer failed\n");
|
|
|
+ goto unmap_src;
|
|
|
+ }
|
|
|
flags = DMA_PREP_INTERRUPT;
|
|
|
tx = device->common.device_prep_dma_memcpy(dma_chan, dma_dest, dma_src,
|
|
|
IOAT_TEST_SIZE, flags);
|
|
@@ -855,8 +863,9 @@ int ioat_dma_self_test(struct ioatdma_device *device)
|
|
|
}
|
|
|
|
|
|
unmap_dma:
|
|
|
- dma_unmap_single(dev, dma_src, IOAT_TEST_SIZE, DMA_TO_DEVICE);
|
|
|
dma_unmap_single(dev, dma_dest, IOAT_TEST_SIZE, DMA_FROM_DEVICE);
|
|
|
+unmap_src:
|
|
|
+ dma_unmap_single(dev, dma_src, IOAT_TEST_SIZE, DMA_TO_DEVICE);
|
|
|
free_resources:
|
|
|
dma->device_free_chan_resources(dma_chan);
|
|
|
out:
|