static void ivshmem_add_kvm_msi_virq(IVShmemState *s, int vector, Error **errp) { PCIDevice *pdev = PCI_DEVICE(s); int ret; IVSHMEM_DPRINTF("ivshmem_add_kvm_msi_virq vector:%d\n", vector); assert(!s->msi_vectors[vector].pdev); ret = kvm_irqchip_add_msi_route(kvm_state, vector, pdev); if (ret < 0) { error_setg(errp, "kvm_irqchip_add_msi_route failed"); return; } s->msi_vectors[vector].virq = ret; s->msi_vectors[vector].pdev = pdev; }
static int ivshmem_add_kvm_msi_virq(IVShmemState *s, int vector) { PCIDevice *pdev = PCI_DEVICE(s); MSIMessage msg = msix_get_message(pdev, vector); int ret; IVSHMEM_DPRINTF("ivshmem_add_kvm_msi_virq vector:%d\n", vector); if (s->msi_vectors[vector].pdev != NULL) { return 0; } ret = kvm_irqchip_add_msi_route(kvm_state, msg, pdev); if (ret < 0) { error_report("ivshmem: kvm_irqchip_add_msi_route failed"); return -1; } s->msi_vectors[vector].virq = ret; s->msi_vectors[vector].pdev = pdev; return 0; }