On 00:12 Tue 29 Jan , Peter Teoh wrote: > what is the difference between get_free_page()/kmem_cache_alloc() and > vmalloc() that makes the former dma-able, and latter not? vmalloc does *not* allocate physical pages. It allocates virtual pages that are accessed via the MMU - in cases where you have to allocate larger amounts of memory in the kernel. The device that wants to DMA this memory does not have an MMU. So the access fails - except you make the page table lookup yourself send the underlying physical address to the device instead. -Michi -- programing a layer 3+4 network protocol for mesh networks see http://michaelblizek.homelinux.net -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ