[PATCH] ARMv7: Flush the vectors page using the base address

Catalin Marinas catalin.marinas at arm.com
Tue Mar 15 18:42:08 EDT 2011


On Tuesday, 15 March 2011, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Tue, Mar 15, 2011 at 06:13:15PM +0000, Catalin Marinas wrote:
>> With the domains removal patch, the vectors page is populated using the
>> kernel linear mapping address. However, the flush_icache_range()
>> function must be called on the high vectors address because the I-cache
>> is allowed to have aliases (or can even be ASID-tagged VIVT).
>
> This is exactly one of the issues I raised when we went down this hacky
> path of always doing this crap.

I don't think we have better options but feel free to rewrite it.

> What you're now doing is missing the D-cache flush in the case of an
> aliasing D-cache.  It's no better than it was before.

In cases where we have domains disabled (ARMv7), the D-cache is
non-aliasing, so there is no issue.

Even if we enable this code for other cache configurations, we can
always flush both aliases. This only happen during boot and I doubt
you would notice any delay.

Catalin

-- 
Catalin



More information about the linux-arm-kernel mailing list