From: "Longpeng(Mike)" <longpeng2@huawei.com> To: <alex.williamson@redhat.com>, <pbonzini@redhat.com> Cc: <qemu-devel@nongnu.org>, <kvm@vger.kernel.org>, <arei.gonglei@huawei.com>, "Longpeng(Mike)" <longpeng2@huawei.com> Subject: [PATCH v4 3/6] vfio: simplify the failure path in vfio_msi_enable Date: Thu, 14 Oct 2021 08:48:49 +0800 [thread overview] Message-ID: <20211014004852.1293-4-longpeng2@huawei.com> (raw) In-Reply-To: <20211014004852.1293-1-longpeng2@huawei.com> Use vfio_msi_disable_common to simplify the error handling in vfio_msi_enable. Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com> --- hw/vfio/pci.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index a4985c0..aeeb6cd 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -47,6 +47,7 @@ static void vfio_disable_interrupts(VFIOPCIDevice *vdev); static void vfio_mmap_set_enabled(VFIOPCIDevice *vdev, bool enabled); +static void vfio_msi_disable_common(VFIOPCIDevice *vdev); /* * Disabling BAR mmaping can be slow, but toggling it around INTx can @@ -655,24 +656,12 @@ retry: "MSI vectors, retry with %d", vdev->nr_vectors, ret); } - for (i = 0; i < vdev->nr_vectors; i++) { - VFIOMSIVector *vector = &vdev->msi_vectors[i]; - if (vector->virq >= 0) { - vfio_remove_kvm_msi_virq(vector); - } - qemu_set_fd_handler(event_notifier_get_fd(&vector->interrupt), - NULL, NULL, NULL); - event_notifier_cleanup(&vector->interrupt); - } - - g_free(vdev->msi_vectors); - vdev->msi_vectors = NULL; + vfio_msi_disable_common(vdev); if (ret > 0) { vdev->nr_vectors = ret; goto retry; } - vdev->nr_vectors = 0; /* * Failing to setup MSI doesn't really fall within any specification. @@ -680,7 +669,6 @@ retry: * out to fall back to INTx for this device. */ error_report("vfio: Error: Failed to enable MSI"); - vdev->interrupt = VFIO_INT_NONE; return; } -- 1.8.3.1
WARNING: multiple messages have this Message-ID (diff)
From: "Longpeng(Mike)" <longpeng2@huawei.com> To: <alex.williamson@redhat.com>, <pbonzini@redhat.com> Cc: "Longpeng\(Mike\)" <longpeng2@huawei.com>, arei.gonglei@huawei.com, qemu-devel@nongnu.org, kvm@vger.kernel.org Subject: [PATCH v4 3/6] vfio: simplify the failure path in vfio_msi_enable Date: Thu, 14 Oct 2021 08:48:49 +0800 [thread overview] Message-ID: <20211014004852.1293-4-longpeng2@huawei.com> (raw) In-Reply-To: <20211014004852.1293-1-longpeng2@huawei.com> Use vfio_msi_disable_common to simplify the error handling in vfio_msi_enable. Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com> --- hw/vfio/pci.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index a4985c0..aeeb6cd 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -47,6 +47,7 @@ static void vfio_disable_interrupts(VFIOPCIDevice *vdev); static void vfio_mmap_set_enabled(VFIOPCIDevice *vdev, bool enabled); +static void vfio_msi_disable_common(VFIOPCIDevice *vdev); /* * Disabling BAR mmaping can be slow, but toggling it around INTx can @@ -655,24 +656,12 @@ retry: "MSI vectors, retry with %d", vdev->nr_vectors, ret); } - for (i = 0; i < vdev->nr_vectors; i++) { - VFIOMSIVector *vector = &vdev->msi_vectors[i]; - if (vector->virq >= 0) { - vfio_remove_kvm_msi_virq(vector); - } - qemu_set_fd_handler(event_notifier_get_fd(&vector->interrupt), - NULL, NULL, NULL); - event_notifier_cleanup(&vector->interrupt); - } - - g_free(vdev->msi_vectors); - vdev->msi_vectors = NULL; + vfio_msi_disable_common(vdev); if (ret > 0) { vdev->nr_vectors = ret; goto retry; } - vdev->nr_vectors = 0; /* * Failing to setup MSI doesn't really fall within any specification. @@ -680,7 +669,6 @@ retry: * out to fall back to INTx for this device. */ error_report("vfio: Error: Failed to enable MSI"); - vdev->interrupt = VFIO_INT_NONE; return; } -- 1.8.3.1
next prev parent reply other threads:[~2021-10-14 0:49 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-10-14 0:48 [PATCH v4 0/6] optimize the downtime for vfio migration Longpeng(Mike) 2021-10-14 0:48 ` Longpeng(Mike) 2021-10-14 0:48 ` [PATCH v4 1/6] vfio: simplify the conditional statements in vfio_msi_enable Longpeng(Mike) 2021-10-14 0:48 ` Longpeng(Mike) 2021-10-14 0:48 ` [PATCH v4 2/6] vfio: move re-enabling INTX out of the common helper Longpeng(Mike) 2021-10-14 0:48 ` Longpeng(Mike) 2021-10-14 0:48 ` Longpeng(Mike) [this message] 2021-10-14 0:48 ` [PATCH v4 3/6] vfio: simplify the failure path in vfio_msi_enable Longpeng(Mike) 2021-10-14 0:48 ` [PATCH v4 4/6] kvm: irqchip: extract kvm_irqchip_add_deferred_msi_route Longpeng(Mike) 2021-10-14 0:48 ` Longpeng(Mike) 2021-10-14 0:48 ` [PATCH v4 5/6] Revert "vfio: Avoid disabling and enabling vectors repeatedly in VFIO migration" Longpeng(Mike) 2021-10-14 0:48 ` Longpeng(Mike) 2021-10-14 0:48 ` [PATCH v4 6/6] vfio: defer to commit kvm irq routing when enable msi/msix Longpeng(Mike) 2021-10-14 0:48 ` Longpeng(Mike) 2021-10-21 20:51 ` Alex Williamson 2021-10-21 20:51 ` Alex Williamson 2021-11-03 6:58 ` Longpeng (Mike, Cloud Infrastructure Service Product Dept.) 2021-11-03 6:58 ` Longpeng (Mike, Cloud Infrastructure Service Product Dept.)
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20211014004852.1293-4-longpeng2@huawei.com \ --to=longpeng2@huawei.com \ --cc=alex.williamson@redhat.com \ --cc=arei.gonglei@huawei.com \ --cc=kvm@vger.kernel.org \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.