• Benjamin Herrenschmidt's avatar
    powerpc/mm: Fix hang accessing top of vmalloc space · 8d8997f3
    Benjamin Herrenschmidt authored
    On pSeries, we always force the IO space to be mapped using 4K
    pages even with a 64K base page size to cope with some limitations
    in the HV interface to some devices.
    
    However, the SLB miss handler code to discriminate between vmalloc
    and ioremap space uses a CPU feature section such that the code
    is nop'ed out when the processor support large pages non-cachable
    mappings.
    
    Thus, we end up always using the ioremap page size for vmalloc
    segments on such processors, causing a discrepency between the
    segment and the hash table, and thus a hang continously hashing
    the page.
    
    It works for the first segment of the vmalloc space since that
    segment is "bolted" in by C code correctly, and thankfully we
    almost never use the vmalloc space beyond the first segment,
    but the new percpu code made the bug happen.
    
    This fixes it by removing the feature section from the assembly,
    we now always do the comparison between vmalloc and ioremap.
    
    Signed-off-by; Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    8d8997f3
slb_low.S 8.09 KB