Re: Hard-coded virtual address used by dma_alloc_coherent
From: Scott Wood <hidden>
Date: 2008-07-24 19:30:49
Remi Machet wrote:
I have noticed that the DMA allocation for non-coherent PowerPC architecture is using a hard coded virtual memory address for its memory pool. This address is typically 0xFF100000 (set by CONFIG_CONSISTENT_START) and can conflict with early ioremap in systems that enable HIGHMEM. Is there any reason why we have to use an arbitrary virtual address ? If the virtual address must be known at compile time, can't we use fixmap ?
The hardcoded address predates when fixmap was added to powerpc. It should be updated to use fixmap.
I also can't figure out why we need to use a virtual address known at compilation time and cannot just allocate pages using get_free_pages and mark them as non cacheable and non swappable.
We probably don't need a compile-time address, though we can't just change the page attributes in-place as the pages will often covered by large TLB entries. -Scott