title: Some questions on dma_alloc_coherent
body: <ol>
  <li><p>Is the DMA address returned from this call the same as the physical address? LDD3 says the DMA address should be treated as opaque by the driver. I want to mmap this DMA buffer so user-space can read/write directly to it. Question is what PFN should I specify for the remap_pfn_range (which to my pleasant surprise now (kernel 3.4+) works for conventional memory same as for I/O memory). Can I just cast the DMA address to unsigned long and convert that to PFN? Isn't this a violation of what LDD3 said about opaqueness?</p></li>
  <li><p>Does <code>dma_alloc_coherent</code> always use <code>__get_free_pages</code> internally? Does this mean the region is potentially always over-allocated (since first function takes bytes but second function allocates in units of pages)?</p></li>
  <li><p>Is there a way to setup a single streaming mapping for multiple consecutive pages obtained from call to <code>__get_free_pages</code>? <code>dma_map_page</code> applies to only single pages.</p></li>
  </ol>