]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/mm/pageattr_64.c
x86: c_p_a() make it more robust against use of PAT bits
[linux-2.6-omap-h63xx.git] / arch / x86 / mm / pageattr_64.c
index 3ccdb1401e673c219ac7f8aafb208da012b182a0..73dbbb4048e664d58f2bac71e49c15234cf5b877 100644 (file)
@@ -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)--;