arm64 ioremap question

Catalin Marinas catalin.marinas at arm.com
Tue Oct 15 11:55:08 EDT 2013


On Tue, Oct 15, 2013 at 04:52:16PM +0100, Russell King - ARM Linux wrote:
> On Tue, Oct 15, 2013 at 11:20:04AM -0400, Mark Salter wrote:
> > ioremap() has a test to prevent RAM from being remapped:
> > 
> > 	/*
> > 	 * Don't allow RAM to be mapped.
> > 	 */
> > 	if (WARN_ON(pfn_valid(__phys_to_pfn(phys_addr))))
> > 		return NULL;
> > 
> > 
> > Is this really necessary even for reserved pages which are not being
> > used for anything else?
> 
> It helps to stop the abuse of using ioremap() on normal memory, which has
> happened soo much in Aarch32 for years.  Unfortuantely, bad habbits die
> hard.
> 
> "Reserved pages not being used for anything else" are still mapped, and
> still subject to speculative fetches.

Indeed. The architecture does not guarantee the semantics of the
ioremap-returned memory (e.g. Device) as long as there are other aliases
with different memory attributes.

-- 
Catalin



More information about the linux-arm-kernel mailing list