• David Gibson's avatar
    powerpc/mm: Bring hugepage PTE accessor functions back into sync with normal accessors · 0895ecda
    David Gibson authored
    The hugepage arch code provides a number of hook functions/macros
    which mirror the functionality of various normal page pte access
    functions.  Various changes in the normal page accessors (in
    particular BenH's recent changes to the handling of lazy icache
    flushing and PAGE_EXEC) have caused the hugepage versions to get out
    of sync with the originals.  In some cases, this is a bug, at least on
    some MMU types.
    
    One of the reasons that some hooks were not identical to the normal
    page versions, is that the fact we're dealing with a hugepage needed
    to be passed down do use the correct dcache-icache flush function.
    This patch makes the main flush_dcache_icache_page() function hugepage
    aware (by checking for the PageCompound flag).  That in turn means we
    can make set_huge_pte_at() just a call to set_pte_at() bringing it
    back into sync.  As a bonus, this lets us remove the
    hash_huge_page_do_lazy_icache() function, replacing it with a call to
    the hash_page_do_lazy_icache() function it was based on.
    
    Some other hugepage pte access hooks - huge_ptep_get_and_clear() and
    huge_ptep_clear_flush() - are not so easily unified, but this patch at
    least brings them back into sync with the current versions of the
    corresponding normal page functions.
    Signed-off-by: default avatarDavid Gibson <dwg@au1.ibm.com>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    0895ecda
mmu-hash64.h 14.1 KB