powerpc: Fix CONFIG_DEBUG_PAGEALLOC on 603/e300
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 27 Apr 2010 21:22:55 +0000 (21:22 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 6 May 2010 06:49:26 +0000 (16:49 +1000)
So we tried to speed things up a bit using flush_hash_pages() directly
but that falls over on 603 of course meaning we fail to flush the TLB
properly and we may even end up having it corrupt memory randomly by
accessing a hash table that doesn't exist.

This removes the "optimization" by always going through flush_tlb_page()
for now at least.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/mm/pgtable_32.c

index 767b0cf..9fc02dc 100644 (file)
@@ -393,11 +393,7 @@ static int __change_page_attr(struct page *page, pgprot_t prot)
                return -EINVAL;
        __set_pte_at(&init_mm, address, kpte, mk_pte(page, prot), 0);
        wmb();
-#ifdef CONFIG_PPC_STD_MMU
-       flush_hash_pages(0, address, pmd_val(*kpmd), 1);
-#else
        flush_tlb_page(NULL, address);
-#endif
        pte_unmap(kpte);
 
        return 0;