[PATCH 0/3] ARM: mvebu: disable I/O coherency on !SMP

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Jul 17 08:34:01 PDT 2014


On Thu, Jul 17, 2014 at 04:40:21PM +0200, Arnd Bergmann wrote:
> On Thursday 17 July 2014 15:27:20 Will Deacon wrote:
> > Just an FYI, but I've had to check internally to clarify the behaviour
> > around TLB conflict aborts. We're changing live page tables here, but the
> > *only* thing to differ is the output address, which I would hope is ok but
> > need to check to be sure.
> 
> The two cases are slightly different:
> 
> - The existing keystone code changes the output address but not the flags
> - The hypothetical mvebu code needs to change the flags but not the address.

Don't base too much confidence in the keystone code:

        map_start = init_mm.start_code;
        map_end   = init_mm.brk;

        phys = __pa(map_start) & PMD_MASK;
        do {
...
                phys += PMD_SIZE;
        } while (phys < map_end);

Consider what happens when map_end is not PMD aligned - it misses the
PMD covering the end of the kernel BSS, which will be quite a common
case.  Obviously something that needs fixing...

-- 
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up
according to speedtest.net.



More information about the linux-arm-kernel mailing list