[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v6 16/29] xen/x86: allow disabling the emulated IO APIC
Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- Changes since v4: - Add Andrew Cooper Acked-by. --- xen/arch/x86/hvm/vioapic.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/xen/arch/x86/hvm/vioapic.c b/xen/arch/x86/hvm/vioapic.c index d348235..30a4a0f 100644 --- a/xen/arch/x86/hvm/vioapic.c +++ b/xen/arch/x86/hvm/vioapic.c @@ -424,12 +424,20 @@ void vioapic_update_EOI(struct domain *d, u8 vector) static int ioapic_save(struct domain *d, hvm_domain_context_t *h) { struct hvm_hw_vioapic *s = domain_vioapic(d); + + if ( !has_vioapic(d) ) + return 0; + return hvm_save_entry(IOAPIC, 0, h, s); } static int ioapic_load(struct domain *d, hvm_domain_context_t *h) { struct hvm_hw_vioapic *s = domain_vioapic(d); + + if ( !has_vioapic(d) ) + return 0; + return hvm_load_entry(IOAPIC, h, s); } @@ -448,6 +456,9 @@ void vioapic_reset(struct domain *d) int vioapic_init(struct domain *d) { + if ( !has_vioapic(d) ) + return 0; + if ( (d->arch.hvm_domain.vioapic == NULL) && ((d->arch.hvm_domain.vioapic = xmalloc(struct hvm_vioapic)) == NULL) ) return -ENOMEM; @@ -462,6 +473,9 @@ int vioapic_init(struct domain *d) void vioapic_deinit(struct domain *d) { + if ( !has_vioapic(d) ) + return; + xfree(d->arch.hvm_domain.vioapic); d->arch.hvm_domain.vioapic = NULL; } -- 1.9.5 (Apple Git-50.3) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |