aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Deegan <tim@xen.org>2012-04-20 09:49:06 +0100
committerTim Deegan <tim@xen.org>2012-04-20 09:49:06 +0100
commitabbcefcd9f6588b1bcac41e221083b1b4eb75c4a (patch)
treeee68d1919de21fdc4796ae93c6897235eb63fdaa
parentf5a7804a189ddeb17409fd382ca92c2712edee5f (diff)
downloadxen-abbcefcd9f6588b1bcac41e221083b1b4eb75c4a.tar.gz
xen-abbcefcd9f6588b1bcac41e221083b1b4eb75c4a.tar.bz2
xen-abbcefcd9f6588b1bcac41e221083b1b4eb75c4a.zip
x86: restore vcpu_destroy_pagetables() call on HVM domain teardown.
HVM vcpus that are using shadow pagetables have valid guest_table fields, which need to be tidied up on domain teardown. Signed-off-by: Tim Deegan <tim@xen.org> Acked-by: Jan Beulich <jbeulich@suse.com> Committed-by: Tim Deegan <tim@xen.org>
-rw-r--r--xen/arch/x86/domain.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index cd56b0edcc..c871e5fb8a 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -2105,13 +2105,14 @@ int domain_relinquish_resources(struct domain *d)
/* Tear down paging-assistance stuff. */
paging_teardown(d);
+ /* Drop the in-use references to page-table bases. */
+ for_each_vcpu ( d, v )
+ vcpu_destroy_pagetables(v);
+
if ( !is_hvm_domain(d) )
{
for_each_vcpu ( d, v )
{
- /* Drop the in-use references to page-table bases. */
- vcpu_destroy_pagetables(v);
-
/*
* Relinquish GDT mappings. No need for explicit unmapping of
* the LDT as it automatically gets squashed with the guest