     dma0.wait_for_dma_start();
     dma0.finish_async_dma();
 #else
-    dma0.execute_dma(&(buffer[ALIGN_OFFSET]), base_ptr);
+    dma0.execute_dma(offsets, &(buffer[ALIGN_OFFSET]), base_ptr);
 #endif
   }
   else

    dma0 (1, num_dma_threads,
          num_compute_threads,
          num_compute_threads,
          offsets,
          bytes_per_elmt,
          num_elmts);


  cudaDMAIndirect<true,true,ALIGNMENT,BYTES_PER_ELMT,DMA_THREADS>
    dma0 (1, num_compute_threads,
          num_compute_threads,
          num_elmts);

  if (dma0.owns_this_thread())
