From 868426849e3a86f20c5da87a30fbfe9ecf8d2db2 Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Wed, 30 Jan 2008 13:33:52 +0100 Subject: [PATCH] --- yaml --- r: 80463 b: refs/heads/master c: 895bdc29956e5c9e9e101b2b1c2f0ed34130f945 h: refs/heads/master i: 80461: 9b3a7edd8cdac8c4d43bc0ecc6074add173d96e3 80459: 71dc3935e7ca3da7960697e346cdcaaa949e8a63 80455: c23b133f62822e1aca957ce62fa4c6b2ac9c4312 80447: ab401c154c04f1e89dafe9ef9d1f198cea9feeca v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/pageattr_32.c | 4 ++-- trunk/arch/x86/mm/pageattr_64.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index d474f43494ab..438f64ebb9b1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3c868823413d76bdd80c643603be8ab09dcb4d65 +refs/heads/master: 895bdc29956e5c9e9e101b2b1c2f0ed34130f945 diff --git a/trunk/arch/x86/mm/pageattr_32.c b/trunk/arch/x86/mm/pageattr_32.c index 5cb5c7101f41..66688a630839 100644 --- a/trunk/arch/x86/mm/pageattr_32.c +++ b/trunk/arch/x86/mm/pageattr_32.c @@ -172,7 +172,7 @@ static int __change_page_attr(struct page *page, pgprot_t prot) BUG_ON(PageCompound(kpte_page)); if (pgprot_val(prot) != pgprot_val(PAGE_KERNEL)) { - if (!pte_huge(*kpte)) { + if (level == 3) { set_pte_atomic(kpte, mk_pte(page, prot)); } else { struct page *split; @@ -190,7 +190,7 @@ static int __change_page_attr(struct page *page, pgprot_t prot) } page_private(kpte_page)++; } else { - if (!pte_huge(*kpte)) { + if (level == 3) { set_pte_atomic(kpte, mk_pte(page, PAGE_KERNEL)); BUG_ON(page_private(kpte_page) == 0); page_private(kpte_page)--; diff --git a/trunk/arch/x86/mm/pageattr_64.c b/trunk/arch/x86/mm/pageattr_64.c index 3ccdb1401e67..73dbbb4048e6 100644 --- a/trunk/arch/x86/mm/pageattr_64.c +++ b/trunk/arch/x86/mm/pageattr_64.c @@ -153,7 +153,7 @@ __change_page_attr(unsigned long address, unsigned long pfn, pgprot_t prot, BUG_ON(PageLRU(kpte_page)); BUG_ON(PageCompound(kpte_page)); if (pgprot_val(prot) != pgprot_val(ref_prot)) { - if (!pte_huge(*kpte)) { + if (level == 4) { set_pte(kpte, pfn_pte(pfn, prot)); } else { /* @@ -172,7 +172,7 @@ __change_page_attr(unsigned long address, unsigned long pfn, pgprot_t prot, } page_private(kpte_page)++; } else { - if (!pte_huge(*kpte)) { + if (level == 4) { set_pte(kpte, pfn_pte(pfn, ref_prot)); BUG_ON(page_private(kpte_page) == 0); page_private(kpte_page)--;