|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] [HVM] Don't assume that VMENTER causes a
# HG changeset patch
# User tdeegan@xxxxxxxxxxxxxxxxxxxxx
# Node ID 2097de87c920a4c81dfd994c53960cd9af162538
# Parent 68a1b61ecd2898be483a2d4b43e36b2d7d82b454
[HVM] Don't assume that VMENTER causes a TLB flush, when validating
shadow pagetable updates.
Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
---
xen/arch/x86/mm/shadow/common.c | 12 ++----------
1 files changed, 2 insertions(+), 10 deletions(-)
diff -r 68a1b61ecd28 -r 2097de87c920 xen/arch/x86/mm/shadow/common.c
--- a/xen/arch/x86/mm/shadow/common.c Mon Aug 28 13:08:41 2006 +0100
+++ b/xen/arch/x86/mm/shadow/common.c Mon Aug 28 17:50:21 2006 +0100
@@ -397,22 +397,14 @@ shadow_validate_guest_pt_write(struct vc
ASSERT(shadow_lock_is_acquired(v->domain));
rc = __shadow_validate_guest_entry(v, gmfn, entry, size);
if ( rc & SHADOW_SET_FLUSH )
- {
- // Flush everyone except the local processor, which will flush when it
- // re-enters the HVM guest.
- //
- cpumask_t mask = d->domain_dirty_cpumask;
- cpu_clear(v->processor, mask);
- flush_tlb_mask(mask);
- }
+ /* Need to flush TLBs to pick up shadow PT changes */
+ flush_tlb_mask(d->domain_dirty_cpumask);
if ( rc & SHADOW_SET_ERROR )
{
/* This page is probably not a pagetable any more: tear it out of the
* shadows, along with any tables that reference it */
shadow_remove_all_shadows_and_parents(v, gmfn);
}
- /* We ignore the other bits: since we are about to change CR3 on
- * VMENTER we don't need to do any extra TLB flushes. */
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] [HVM] Don't assume that VMENTER causes a TLB flush, when validating,
Xen patchbot-unstable <=
|
|
|
|
|