On Thu, 17 Feb 2011 16:05:37 +0100 Tomas Henzl <thenzl@xxxxxxxxxx> wrote: > the discussion is mostly if 'dma_alloc_coherent' > ... > dma_coherent = dma_alloc_coherent(&pdev->dev, acb->uncache_size, &dma_coherent_handle, GFP_KERNEL); > ... > returns a page address - dma_coherent with last, I think five bits, zeroed. > Could you help us with that? Documentation/DMA-API-HOWTO.txt is not clear enough? = dma_alloc_coherent returns two values: the virtual address which you can use to access it from the CPU and dma_handle which you pass to the card. The cpu return address and the DMA bus master address are both guaranteed to be aligned to the smallest PAGE_SIZE order which is greater than or equal to the requested size. This invariant exists (for example) to guarantee that if you allocate a chunk which is smaller than or equal to 64 kilobytes, the extent of the buffer you receive will not cross a 64K boundary. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html