File 19764-hvm-domain-lock-leak.patch of Package xen
# HG changeset patch
# User Keir Fraser <keir.fraser@citrix.com>
# Date 1245155592 -3600
# Node ID 775afcdc2759082e56ac22918c1f51a84917d160
# Parent 45ca3f3c3f98118efa6ec207b094c4e61fbee79d
x86, hvm: fix a domain_lock leak
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -499,11 +499,13 @@ static int hvm_load_cpu_ctxt(struct doma
vc = &v->arch.guest_context;
/* Need to init this vcpu before loading its contents */
+ rc = 0;
domain_lock(d);
if ( !v->is_initialised )
- if ( (rc = boot_vcpu(d, vcpuid, vc)) != 0 )
- return rc;
+ rc = boot_vcpu(d, vcpuid, vc);
domain_unlock(d);
+ if ( rc != 0 )
+ return rc;
if ( hvm_load_entry(CPU, h, &ctxt) != 0 )
return -EINVAL;
@@ -2257,7 +2259,7 @@ static void hvm_s3_suspend(struct domain
vpic_reset(d);
vioapic_reset(d);
pit_reset(d);
- rtc_reset(d);
+ rtc_reset(d);
pmtimer_reset(d);
hpet_reset(d);