diff options
author | Zachary Amsden <zach@vmware.com> | 2006-10-01 02:29:38 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-01 03:39:34 -0400 |
commit | 789e6ac0a7cbbb38402293256a295302fd8a1100 (patch) | |
tree | 65a1c946f72bdbc8226c2fab5882cc56b9da031e /arch/i386 | |
parent | a93cb055a23f3172c1e6a22ac1dc4f1c07929b08 (diff) |
[PATCH] paravirt: update pte hook
Add a pte_update_hook which notifies about pte changes that have been made
without using the set_pte / clear_pte interfaces. This allows shadow mode
hypervisors which do not trap on page table access to maintain synchronized
shadows.
It also turns out, there was one pte update in PAE mode that wasn't using any
accessor interface at all for setting NX protection. Considering it is PAE
specific, and the accessor is i386 specific, I didn't want to add a generic
encapsulation of this behavior yet.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/mm/init.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/i386/mm/init.c b/arch/i386/mm/init.c index 4a5a914b3432..90089c14c23d 100644 --- a/arch/i386/mm/init.c +++ b/arch/i386/mm/init.c | |||
@@ -493,6 +493,7 @@ int __init set_kernel_exec(unsigned long vaddr, int enable) | |||
493 | pte->pte_high &= ~(1 << (_PAGE_BIT_NX - 32)); | 493 | pte->pte_high &= ~(1 << (_PAGE_BIT_NX - 32)); |
494 | else | 494 | else |
495 | pte->pte_high |= 1 << (_PAGE_BIT_NX - 32); | 495 | pte->pte_high |= 1 << (_PAGE_BIT_NX - 32); |
496 | pte_update_defer(&init_mm, vaddr, pte); | ||
496 | __flush_tlb_all(); | 497 | __flush_tlb_all(); |
497 | out: | 498 | out: |
498 | return ret; | 499 | return ret; |