On Tue, 16 Apr 2024 at 13:29, Cindy Lu <l...@redhat.com> wrote: > > In function kvm_virtio_pci_vector_use_one(), in the undo label, > the function will get the vector incorrectly while using > VIRTIO_CONFIG_IRQ_IDX > To fix this, we remove this label and simplify the failure process > > Fixes: f9a09ca3ea ("vhost: add support for configure interrupt") > Cc: qemu-sta...@nongnu.org > Signed-off-by: Cindy Lu <l...@redhat.com> > --- > hw/virtio/virtio-pci.c | 19 +++---------------- > 1 file changed, 3 insertions(+), 16 deletions(-) > > diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c > index b138fa127a..565bdb0897 100644 > --- a/hw/virtio/virtio-pci.c > +++ b/hw/virtio/virtio-pci.c > @@ -892,7 +892,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. > @@ -902,25 +902,12 @@ 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; > + kvm_virtio_pci_irqfd_release(proxy, n, vector);
Are you sure this is right? The kvm_virtio_pci_irqfd_use() just failed, so why do we need to call kvm_virtio_pci_irqfd_release() ? thanks -- PMM