]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[PATCH] x86-64: Always flush all pages in change_page_attr
authorAndi Kleen <ak@suse.de>
Fri, 27 Apr 2007 16:48:54 +0000 (12:48 -0400)
committerChris Wright <chrisw@sous-sol.org>
Mon, 11 Jun 2007 18:37:08 +0000 (11:37 -0700)
change_page_attr on x86-64 only flushed the TLB for pages that got
reverted. That's not correct: it has to be flushed in all cases.

This bug was added in some earlier changes.

Just flush all pages for now.

This could be done more efficiently, but for this late in the release
this seem to be the best fix.

Pointed out by Jan Beulich

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86_64/mm/pageattr.c

index ccb91dd996a957c1dc26f183e095c3a8edbd30f1..4df4bb52c7525768a8ebdede5b79042753b5ee86 100644 (file)
@@ -81,8 +81,8 @@ static void flush_kernel_map(void *arg)
                void *adr = page_address(pg);
                if (cpu_has_clflush)
                        cache_flush_page(adr);
-               __flush_tlb_one(adr);
        }
+       __flush_tlb_all();
 }
 
 static inline void flush_map(struct list_head *l)