• Benjamin Herrenschmidt's avatar
    [POWERPC] 4xx: Deal with 44x virtually tagged icache · b98ac05d
    Benjamin Herrenschmidt authored
    The 44x family has an interesting "feature" which is a virtually
    tagged instruction cache (yuck !). So far, we haven't dealt with
    it properly, which means we've been mostly lucky or people didn't
    report the problems, unless people have been running custom patches
    in their distro...
    
    This is an attempt at fixing it properly. I chose to do it by
    setting a global flag whenever we change a PTE that was previously
    marked executable, and flush the entire instruction cache upon
    return to user space when that happens.
    
    This is a bit heavy handed, but it's hard to do more fine grained
    flushes as the icbi instruction, on those processor, for some very
    strange reasons (since the cache is virtually mapped) still requires
    a valid TLB entry for reading in the target address space, which
    isn't something I want to deal with.
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarJosh Boyer <jwboyer@linux.vnet.ibm.com>
    b98ac05d
misc.S 17.7 KB