summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2007-04-27 12:48:54 -0400
committerChris Wright <chrisw@sous-sol.org>2007-06-11 11:37:08 -0700
commit7773d585e2aebd22e8325d2a76970565f4019093 (patch)
tree2492756aeb5d99f4a123fc615c67387765d844fd
parentafb7680b2c8ddadc4b09177dd85880f5ad6b4621 (diff)
[PATCH] x86-64: Always flush all pages in change_page_attr
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>
-rw-r--r--arch/x86_64/mm/pageattr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86_64/mm/pageattr.c b/arch/x86_64/mm/pageattr.c
index ccb91dd996a9..4df4bb52c752 100644
--- a/arch/x86_64/mm/pageattr.c
+++ b/arch/x86_64/mm/pageattr.c
@@ -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)