aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/hvm.c
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2013-03-28 11:44:11 +0000
committerKeir Fraser <keir@xen.org>2013-03-28 11:44:11 +0000
commit7242e0dc2c6c083ded570de159007d112ee34e88 (patch)
tree0c91b27d4df9aa28dcda555e0b3f2f2897740dbd /xen/arch/x86/hvm/hvm.c
parent3920df230bbe9eb2fcb5147df97f7ab7ece22fc2 (diff)
downloadxen-7242e0dc2c6c083ded570de159007d112ee34e88.tar.gz
xen-7242e0dc2c6c083ded570de159007d112ee34e88.tar.bz2
xen-7242e0dc2c6c083ded570de159007d112ee34e88.zip
hvm: Improve APIC INIT/SIPI emulation, fixing it for call paths other than x86_emulate().
In particular, on broadcast/multicast INIT/SIPI, we handle all target APICs at once in a single invocation of the init/sipi tasklet. This avoids needing to return an X86EMUL_RETRY error code to the caller, which was being ignored by all except x86_emulate(). The original bug, and the general approach in this fix, pointed out by Intel (yang.z.zhang@intel.com). Signed-off-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/hvm/hvm.c')
-rw-r--r--xen/arch/x86/hvm/hvm.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index ea7adf6780..38e87ce3af 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -3461,8 +3461,6 @@ void hvm_vcpu_reset_state(struct vcpu *v, uint16_t cs, uint16_t ip)
struct domain *d = v->domain;
struct segment_register reg;
- BUG_ON(vcpu_runnable(v));
-
domain_lock(d);
if ( v->is_initialised )