[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 15/23] x86: Add more checks verifying that PIT/PIC/IOAPIC are emulated
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- v2: * Added ASSERT(has_vpic(d)) * This patch can go in independent of the rest of the series. xen/arch/x86/hvm/vlapic.c | 14 ++++++++++++-- xen/arch/x86/hvm/vpt.c | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c index ba9b293..1d5d287 100644 --- a/xen/arch/x86/hvm/vlapic.c +++ b/xen/arch/x86/hvm/vlapic.c @@ -1114,7 +1114,14 @@ static int __vlapic_accept_pic_intr(struct vcpu *v) struct domain *d = v->domain; struct vlapic *vlapic = vcpu_vlapic(v); uint32_t lvt0 = vlapic_get_reg(vlapic, APIC_LVT0); - union vioapic_redir_entry redir0 = domain_vioapic(d)->redirtbl[0]; + union vioapic_redir_entry redir0; + + ASSERT(has_vpic(d)); + + if ( !has_vioapic(d) ) + return 0; + + redir0 = domain_vioapic(d)->redirtbl[0]; /* We deliver 8259 interrupts to the appropriate CPU as follows. */ return ((/* IOAPIC pin0 is unmasked and routing to this LAPIC? */ @@ -1130,7 +1137,7 @@ static int __vlapic_accept_pic_intr(struct vcpu *v) int vlapic_accept_pic_intr(struct vcpu *v) { - if ( vlapic_hw_disabled(vcpu_vlapic(v)) ) + if ( vlapic_hw_disabled(vcpu_vlapic(v)) || !has_vpic(v->domain) ) return 0; TRACE_2D(TRC_HVM_EMUL_LAPIC_PIC_INTR, @@ -1145,6 +1152,9 @@ void vlapic_adjust_i8259_target(struct domain *d) { struct vcpu *v; + if ( !has_vpic(d) ) + return; + for_each_vcpu ( d, v ) if ( __vlapic_accept_pic_intr(v) ) goto found; diff --git a/xen/arch/x86/hvm/vpt.c b/xen/arch/x86/hvm/vpt.c index 358ec57..c90aa95 100644 --- a/xen/arch/x86/hvm/vpt.c +++ b/xen/arch/x86/hvm/vpt.c @@ -496,7 +496,7 @@ void pt_adjust_global_vcpu_target(struct vcpu *v) struct pl_time *pl_time; int i; - if ( v == NULL ) + if ( v == NULL || !has_vpit(v->domain) ) return; vpit = &v->domain->arch.vpit; -- 1.8.3.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |