i386/kvm: Remove IRQ routing support checks
KVM_CAP_IRQ_ROUTING is always available on x86, so replace checks for kvm_has_gsi_routing() and KVM_CAP_IRQ_ROUTING with asserts. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20200922201922.2153598-3-ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
1a6dff5fa8
commit
8981bae23e
@ -225,9 +225,8 @@ static void kvm_apic_realize(DeviceState *dev, Error **errp)
|
||||
memory_region_init_io(&s->io_memory, OBJECT(s), &kvm_apic_io_ops, s,
|
||||
"kvm-apic-msi", APIC_SPACE_SIZE);
|
||||
|
||||
if (kvm_has_gsi_routing()) {
|
||||
msi_nonbroken = true;
|
||||
}
|
||||
assert(kvm_has_gsi_routing());
|
||||
msi_nonbroken = true;
|
||||
}
|
||||
|
||||
static void kvm_apic_unrealize(DeviceState *dev)
|
||||
|
@ -25,27 +25,26 @@ void kvm_pc_setup_irq_routing(bool pci_enabled)
|
||||
KVMState *s = kvm_state;
|
||||
int i;
|
||||
|
||||
if (kvm_check_extension(s, KVM_CAP_IRQ_ROUTING)) {
|
||||
for (i = 0; i < 8; ++i) {
|
||||
if (i == 2) {
|
||||
continue;
|
||||
}
|
||||
kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_PIC_MASTER, i);
|
||||
assert(kvm_has_gsi_routing());
|
||||
for (i = 0; i < 8; ++i) {
|
||||
if (i == 2) {
|
||||
continue;
|
||||
}
|
||||
for (i = 8; i < 16; ++i) {
|
||||
kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_PIC_SLAVE, i - 8);
|
||||
}
|
||||
if (pci_enabled) {
|
||||
for (i = 0; i < 24; ++i) {
|
||||
if (i == 0) {
|
||||
kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_IOAPIC, 2);
|
||||
} else if (i != 2) {
|
||||
kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_IOAPIC, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
kvm_irqchip_commit_routes(s);
|
||||
kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_PIC_MASTER, i);
|
||||
}
|
||||
for (i = 8; i < 16; ++i) {
|
||||
kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_PIC_SLAVE, i - 8);
|
||||
}
|
||||
if (pci_enabled) {
|
||||
for (i = 0; i < 24; ++i) {
|
||||
if (i == 0) {
|
||||
kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_IOAPIC, 2);
|
||||
} else if (i != 2) {
|
||||
kvm_irqchip_add_irq_route(s, i, KVM_IRQCHIP_IOAPIC, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
kvm_irqchip_commit_routes(s);
|
||||
}
|
||||
|
||||
typedef struct KVMIOAPICState KVMIOAPICState;
|
||||
|
@ -4552,13 +4552,6 @@ bool kvm_arch_stop_on_emulation_error(CPUState *cs)
|
||||
|
||||
void kvm_arch_init_irq_routing(KVMState *s)
|
||||
{
|
||||
if (!kvm_check_extension(s, KVM_CAP_IRQ_ROUTING)) {
|
||||
/* If kernel can't do irq routing, interrupt source
|
||||
* override 0->2 cannot be set up as required by HPET.
|
||||
* So we have to disable it.
|
||||
*/
|
||||
no_hpet = 1;
|
||||
}
|
||||
/* We know at this point that we're using the in-kernel
|
||||
* irqchip, so we can use irqfds, and on x86 we know
|
||||
* we can use msi via irqfd and GSI routing.
|
||||
|
Loading…
Reference in New Issue
Block a user