On Fri, 21 Jan 2011, Colin Cross wrote: > On Fri, Jan 21, 2011 at 7:37 PM, Nicolas Pitre <nico@xxxxxxxxxxx> wrote: > > On Fri, 21 Jan 2011, Colin Cross wrote: > > > >> If this is a real problem, I don't see any quick fix. The domain bits > >> are set in the pmd, so ioremapped memory can not share a pmd with > >> regular vmalloc memory, and ioremap_page_range has no way to carry a > >> domain to pte_alloc_kernel. > > > > This has been fixed already. Have a look at: > > > > |commit 247055aa21ffef1c49dd64710d5e94c2aee19b58 > > |Author: Catalin Marinas <catalin.marinas@xxxxxxx> > > |Date: Mon Sep 13 16:03:21 2010 +0100 > > | > > | ARM: 6384/1: Remove the domain switching on ARMv6k/v7 CPUs > > | > > |[...] > > Ah, thanks. For the linux-tegra-2.6.36 kernel I worked around the > problem by statically mapping all of the IO regions and preventing > ioremaps outside of the static mappings or physical memory. Beware that the ARM ARM also mention that multiple mappings of the same physical memory but with different caching attributes is undefined. So you should not ioremap memory if it is already mapped in the direct kernel memory space. I think 2.6.36 would produce a warning, but now this also returns NULL. Nicolas