mirror of https://github.com/xqemu/xqemu.git
pc: Enable MSI support at APIC level
Push msi_supported enabling to the APIC implementations where we can encapsulate the decision more cleanly, hiding the details from the generic code. Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
04fa27f5ae
commit
08a82ac01c
|
@ -19,6 +19,7 @@
|
|||
#include "apic_internal.h"
|
||||
#include "apic.h"
|
||||
#include "ioapic.h"
|
||||
#include "msi.h"
|
||||
#include "host-utils.h"
|
||||
#include "trace.h"
|
||||
#include "pc.h"
|
||||
|
@ -862,6 +863,8 @@ static void apic_init(APICCommonState *s)
|
|||
|
||||
s->timer = qemu_new_timer_ns(vm_clock, apic_timer, s);
|
||||
local_apics[s->idx] = s;
|
||||
|
||||
msi_supported = true;
|
||||
}
|
||||
|
||||
static void apic_class_init(ObjectClass *klass, void *data)
|
||||
|
|
9
hw/pc.c
9
hw/pc.c
|
@ -911,15 +911,6 @@ static DeviceState *apic_init(void *env, uint8_t apic_id)
|
|||
apic_mapped = 1;
|
||||
}
|
||||
|
||||
/* KVM does not support MSI yet. */
|
||||
if (!kvm_irqchip_in_kernel()) {
|
||||
msi_supported = true;
|
||||
}
|
||||
|
||||
if (xen_msi_support()) {
|
||||
msi_supported = true;
|
||||
}
|
||||
|
||||
return dev;
|
||||
}
|
||||
|
||||
|
|
10
hw/xen.h
10
hw/xen.h
|
@ -57,14 +57,4 @@ void xen_register_framebuffer(struct MemoryRegion *mr);
|
|||
# define HVM_MAX_VCPUS 32
|
||||
#endif
|
||||
|
||||
static inline int xen_msi_support(void)
|
||||
{
|
||||
#if defined(CONFIG_XEN_CTRL_INTERFACE_VERSION) \
|
||||
&& CONFIG_XEN_CTRL_INTERFACE_VERSION >= 420
|
||||
return xen_enabled();
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* QEMU_HW_XEN_H */
|
||||
|
|
|
@ -40,6 +40,11 @@ static void xen_apic_init(APICCommonState *s)
|
|||
{
|
||||
memory_region_init_io(&s->io_memory, &xen_apic_io_ops, s, "xen-apic-msi",
|
||||
MSI_SPACE_SIZE);
|
||||
|
||||
#if defined(CONFIG_XEN_CTRL_INTERFACE_VERSION) \
|
||||
&& CONFIG_XEN_CTRL_INTERFACE_VERSION >= 420
|
||||
msi_supported = true;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void xen_apic_set_base(APICCommonState *s, uint64_t val)
|
||||
|
|
Loading…
Reference in New Issue