aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Dunlap <george.dunlap@eu.citrix.com>2013-09-23 16:27:39 +0200
committerJan Beulich <jbeulich@suse.com>2013-09-23 16:27:39 +0200
commit420bd9be17b480d8c2e1c9897bfd3a42d209c8e5 (patch)
tree8a5aed0ca3d90cbcbc4743f8064cf102c95025cf
parentd9b46e5c84fdd38b4df766148bdf6582b4a04746 (diff)
downloadxen-420bd9be17b480d8c2e1c9897bfd3a42d209c8e5.tar.gz
xen-420bd9be17b480d8c2e1c9897bfd3a42d209c8e5.tar.bz2
xen-420bd9be17b480d8c2e1c9897bfd3a42d209c8e5.zip
VMX: fix failure path in construct_vmcs
If the allocation fails, make sure to call vmx_vmcs_exit(). This is a candidate for backport. Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com> Signed-off-by: Mukesh Rathor <mukesh.rathor@oracle.com> master commit: dad7e45bf44c0569546a3ed7d0fa4182a4a73f0a master date: 2013-09-18 14:45:42 +0200
-rw-r--r--xen/arch/x86/hvm/vmx/vmcs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 759718fab2..6ef9739bfd 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -894,7 +894,10 @@ static int construct_vmcs(struct vcpu *v)
unsigned long *msr_bitmap = alloc_xenheap_page();
if ( msr_bitmap == NULL )
+ {
+ vmx_vmcs_exit(v);
return -ENOMEM;
+ }
memset(msr_bitmap, ~0, PAGE_SIZE);
v->arch.hvm_vmx.msr_bitmap = msr_bitmap;