|
@@ -898,7 +898,7 @@ static int kvm_virtio_pci_vector_use_one(VirtIOPCIProxy *proxy, int queue_no)
|
|
|
}
|
|
|
ret = kvm_virtio_pci_vq_vector_use(proxy, vector);
|
|
|
if (ret < 0) {
|
|
|
- goto undo;
|
|
|
+ return ret;
|
|
|
}
|
|
|
/*
|
|
|
* If guest supports masking, set up irqfd now.
|
|
@@ -908,25 +908,11 @@ static int kvm_virtio_pci_vector_use_one(VirtIOPCIProxy *proxy, int queue_no)
|
|
|
ret = kvm_virtio_pci_irqfd_use(proxy, n, vector);
|
|
|
if (ret < 0) {
|
|
|
kvm_virtio_pci_vq_vector_release(proxy, vector);
|
|
|
- goto undo;
|
|
|
+ return ret;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
-undo:
|
|
|
-
|
|
|
- vector = virtio_queue_vector(vdev, queue_no);
|
|
|
- if (vector >= msix_nr_vectors_allocated(dev)) {
|
|
|
- return ret;
|
|
|
- }
|
|
|
- if (vdev->use_guest_notifier_mask && k->guest_notifier_mask) {
|
|
|
- ret = virtio_pci_get_notifier(proxy, queue_no, &n, &vector);
|
|
|
- if (ret < 0) {
|
|
|
- return ret;
|
|
|
- }
|
|
|
- kvm_virtio_pci_irqfd_release(proxy, n, vector);
|
|
|
- }
|
|
|
- return ret;
|
|
|
}
|
|
|
static int kvm_virtio_pci_vector_vq_use(VirtIOPCIProxy *proxy, int nvqs)
|
|
|
{
|