mtip32xx: fix checks for dma mapping errors
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Fri, 18 Mar 2016 22:35:54 +0000 (01:35 +0300)
committerJens Axboe <axboe@fb.com>
Sat, 19 Mar 2016 01:10:59 +0000 (18:10 -0700)
exec_drive_taskfile() checks for dma mapping errors by comparison
returned address with zero, while pci_dma_mapping_error() should be used.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/mtip32xx/mtip32xx.c

index cc2e71d..25824c1 100644 (file)
@@ -2051,7 +2051,7 @@ static int exec_drive_taskfile(struct driver_data *dd,
                                         outbuf,
                                         taskout,
                                         DMA_TO_DEVICE);
-               if (outbuf_dma == 0) {
+               if (pci_dma_mapping_error(dd->pdev, outbuf_dma)) {
                        err = -ENOMEM;
                        goto abort;
                }
@@ -2068,7 +2068,7 @@ static int exec_drive_taskfile(struct driver_data *dd,
                inbuf_dma = pci_map_single(dd->pdev,
                                         inbuf,
                                         taskin, DMA_FROM_DEVICE);
-               if (inbuf_dma == 0) {
+               if (pci_dma_mapping_error(dd->pdev, inbuf_dma)) {
                        err = -ENOMEM;
                        goto abort;
                }