diff options
author | Tim Deegan <Tim.Deegan@xensource.com> | 2006-10-17 11:07:11 +0100 |
---|---|---|
committer | Tim Deegan <Tim.Deegan@xensource.com> | 2006-10-17 11:07:11 +0100 |
commit | 3cc943dc88804bb61719d991267cc4b86f0fe198 (patch) | |
tree | a10c2e1f1e6cb79190e77a82edcfa35ab211996d /xen/include/asm-x86/shadow.h | |
parent | fb7382a4d9fa94c0d0b053669e20917c1bf5f733 (diff) | |
download | xen-3cc943dc88804bb61719d991267cc4b86f0fe198.tar.gz xen-3cc943dc88804bb61719d991267cc4b86f0fe198.tar.bz2 xen-3cc943dc88804bb61719d991267cc4b86f0fe198.zip |
[XEN] Don't kill shadowed guest for writing bogus PTEs.
If a guest writes a "bad" pagetable entry and we fail to unshadow the
page, don't kill the guest. This makes the behaviour the same as
if the bad PTE were already in place when we shadowed the page.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Diffstat (limited to 'xen/include/asm-x86/shadow.h')
-rw-r--r-- | xen/include/asm-x86/shadow.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h index 98dcc140b9..9301022abd 100644 --- a/xen/include/asm-x86/shadow.h +++ b/xen/include/asm-x86/shadow.h @@ -549,13 +549,13 @@ shadow_remove_all_shadows_and_parents(struct vcpu *v, mfn_t gmfn); * Unshadow it, and recursively unshadow pages that reference it. */ /* Remove all shadows of the guest mfn. */ -extern void sh_remove_shadows(struct vcpu *v, mfn_t gmfn, int all); +extern void sh_remove_shadows(struct vcpu *v, mfn_t gmfn, int fast, int all); static inline void shadow_remove_all_shadows(struct vcpu *v, mfn_t gmfn) { int was_locked = shadow_lock_is_acquired(v->domain); if ( !was_locked ) shadow_lock(v->domain); - sh_remove_shadows(v, gmfn, 1); + sh_remove_shadows(v, gmfn, 0, 1); if ( !was_locked ) shadow_unlock(v->domain); } |