goto free_resources;
        }
 
-       for (i = 0; i < IOAT_NUM_SRC_TEST; i++)
-               dma_srcs[i] = DMA_ERROR_CODE;
        for (i = 0; i < IOAT_NUM_SRC_TEST; i++) {
                dma_srcs[i] = dma_map_page(dev, xor_srcs[i], 0, PAGE_SIZE,
                                           DMA_TO_DEVICE);
 
        xor_val_result = 1;
 
-       for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++)
-               dma_srcs[i] = DMA_ERROR_CODE;
        for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) {
                dma_srcs[i] = dma_map_page(dev, xor_val_srcs[i], 0, PAGE_SIZE,
                                           DMA_TO_DEVICE);
        op = IOAT_OP_XOR_VAL;
 
        xor_val_result = 0;
-       for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++)
-               dma_srcs[i] = DMA_ERROR_CODE;
        for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++) {
                dma_srcs[i] = dma_map_page(dev, xor_val_srcs[i], 0, PAGE_SIZE,
                                           DMA_TO_DEVICE);
        goto free_resources;
 dma_unmap:
        if (op == IOAT_OP_XOR) {
-               if (dest_dma != DMA_ERROR_CODE)
-                       dma_unmap_page(dev, dest_dma, PAGE_SIZE,
-                                      DMA_FROM_DEVICE);
-               for (i = 0; i < IOAT_NUM_SRC_TEST; i++)
-                       if (dma_srcs[i] != DMA_ERROR_CODE)
-                               dma_unmap_page(dev, dma_srcs[i], PAGE_SIZE,
-                                              DMA_TO_DEVICE);
+               while (--i >= 0)
+                       dma_unmap_page(dev, dma_srcs[i], PAGE_SIZE,
+                                      DMA_TO_DEVICE);
+               dma_unmap_page(dev, dest_dma, PAGE_SIZE, DMA_FROM_DEVICE);
        } else if (op == IOAT_OP_XOR_VAL) {
-               for (i = 0; i < IOAT_NUM_SRC_TEST + 1; i++)
-                       if (dma_srcs[i] != DMA_ERROR_CODE)
-                               dma_unmap_page(dev, dma_srcs[i], PAGE_SIZE,
-                                              DMA_TO_DEVICE);
+               while (--i >= 0)
+                       dma_unmap_page(dev, dma_srcs[i], PAGE_SIZE,
+                                      DMA_TO_DEVICE);
        }
 free_resources:
        dma->device_free_chan_resources(dma_chan);