Exemplo n.º 1
0
/* Mark vector as used. */
int msix_vector_use(PCIDevice *dev, unsigned vector)
{
    int ret;
    if (vector >= dev->msix_entries_nr)
        return -EINVAL;
    if (dev->msix_entry_used[vector]) {
        return 0;
    }
    if (kvm_enabled() && kvm_irqchip_in_kernel()) {
        ret = kvm_msix_add(dev, vector);
        if (ret) {
            return ret;
        }
    }
    ++dev->msix_entry_used[vector];
    return 0;
}
Exemplo n.º 2
0
/* Mark vector as used. */
int msix_vector_use(PCIDevice *dev, unsigned vector)
{
    int ret;
fprintf(stderr, "CDY msix_vector_use, dev %p, vector 0x%x\n", dev, vector);
    if (vector >= dev->msix_entries_nr)
        return -EINVAL;
    if (dev->msix_entry_used[vector]) {
        return 0;
    }
    if (kvm_enabled() && qemu_kvm_irqchip_in_kernel()) {
fprintf(stderr, "CDY call kvm_msix_add\n");
        ret = kvm_msix_add(dev, vector);
        if (ret) {
fprintf(stderr, "CDY kvm_msix_add failed, ret = 0x%x\n", ret);
            return ret;
        }
    }
    ++dev->msix_entry_used[vector];
    return 0;
}