Revision a39c1d47 hw/pc_piix.c

b/hw/pc_piix.c
69 69
        for (i = 8; i < 16; ++i) {
70 70
            kvm_irqchip_add_route(s, i, KVM_IRQCHIP_PIC_SLAVE, i - 8);
71 71
        }
72
        if (pci_enabled) {
73
            for (i = 0; i < 24; ++i) {
74
                if (i == 0) {
75
                    kvm_irqchip_add_route(s, i, KVM_IRQCHIP_IOAPIC, 2);
76
                } else if (i != 2) {
77
                    kvm_irqchip_add_route(s, i, KVM_IRQCHIP_IOAPIC, i);
78
                }
79
            }
80
        }
72 81
        ret = kvm_irqchip_commit_routes(s);
73 82
        if (ret < 0) {
74 83
            hw_error("KVM IRQ routing setup failed");
......
95 104
    SysBusDevice *d;
96 105
    unsigned int i;
97 106

  
98
    dev = qdev_create(NULL, "ioapic");
107
    if (kvm_enabled() && kvm_irqchip_in_kernel()) {
108
        dev = qdev_create(NULL, "kvm-ioapic");
109
    } else {
110
        dev = qdev_create(NULL, "ioapic");
111
    }
99 112
    qdev_init_nofail(dev);
100 113
    d = sysbus_from_qdev(dev);
101 114
    sysbus_mmio_map(d, 0, 0xfec00000);

Also available in: Unified diff