x86: fix page-present check in cpa_flush_range
authorThomas Gleixner <tglx@linutronix.de>
Mon, 4 Feb 2008 15:48:08 +0000 (16:48 +0100)
committerIngo Molnar <mingo@elte.hu>
Mon, 4 Feb 2008 15:48:08 +0000 (16:48 +0100)
pte_present() might return true for PROT_NONE mappings.
Explicitely check the present bit.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/mm/pageattr.c

index 0b029c97174ec4779825e1de739d2c430e6d09c9..9be684e61dcb27452019348f1e48b4fbc4925a73 100644 (file)
@@ -119,7 +119,7 @@ static void cpa_flush_range(unsigned long start, int numpages, int cache)
                /*
                 * Only flush present addresses:
                 */
-               if (pte && pte_present(*pte))
+               if (pte && (pte_val(*pte) & _PAGE_PRESENT))
                        clflush_cache_range((void *) addr, PAGE_SIZE);
        }
 }