stop c_p_a corrupting the pds
authorHugh Dickins <hugh@veritas.com>
Tue, 5 Feb 2008 22:26:01 +0000 (22:26 +0000)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 5 Feb 2008 22:37:14 +0000 (14:37 -0800)
When change_page_attr splits a large page on x86_32 (without PAE), it is
currently corrupting every process's page directory: fix that by removing
the thinko which passes down a physical instead of a virtual address.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/mm/pageattr.c

index bb55a78dcd621cad4a608073ed46c438f4940163..16ce841f08d6600170a8cf223a80f04cec1376d9 100644 (file)
@@ -237,7 +237,6 @@ static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
        if (!SHARED_KERNEL_PMD) {
                struct page *page;
 
-               address = __pa(address);
                list_for_each_entry(page, &pgd_list, lru) {
                        pgd_t *pgd;
                        pud_t *pud;