* [PULL 0/2] vfio queue
@ 2024-01-29 8:41 Cédric Le Goater
2024-01-29 8:41 ` [PULL 1/2] vfio: use matching sizeof type Cédric Le Goater
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Cédric Le Goater @ 2024-01-29 8:41 UTC (permalink / raw)
To: qemu-devel; +Cc: Cédric Le Goater
The following changes since commit 7a1dc45af581d2b643cdbf33c01fd96271616fbd:
Merge tag 'pull-target-arm-20240126' of https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-01-26 18:16:35 +0000)
are available in the Git repository at:
https://github.com/legoater/qemu/ tags/pull-vfio-20240129
for you to fetch changes up to d2b668fca5652760b435ce812a743bba03d2f316:
vfio/pci: Clear MSI-X IRQ index always (2024-01-29 08:26:25 +0100)
----------------------------------------------------------------
vfio queue:
* Array type cleanup
* Fix for IRQ enablement
----------------------------------------------------------------
Cédric Le Goater (1):
vfio/pci: Clear MSI-X IRQ index always
Paolo Bonzini (1):
vfio: use matching sizeof type
hw/vfio/common.c | 2 +-
hw/vfio/pci.c | 8 +++++---
2 files changed, 6 insertions(+), 4 deletions(-)
^ permalink raw reply [flat|nested] 4+ messages in thread* [PULL 1/2] vfio: use matching sizeof type
2024-01-29 8:41 [PULL 0/2] vfio queue Cédric Le Goater
@ 2024-01-29 8:41 ` Cédric Le Goater
2024-01-29 8:41 ` [PULL 2/2] vfio/pci: Clear MSI-X IRQ index always Cédric Le Goater
2024-01-29 17:22 ` [PULL 0/2] vfio queue Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Cédric Le Goater @ 2024-01-29 8:41 UTC (permalink / raw)
To: qemu-devel; +Cc: Paolo Bonzini, Philippe Mathieu-Daudé
From: Paolo Bonzini <pbonzini@redhat.com>
Do not use uint64_t for the type of the declaration and __u64 when
computing the number of elements in the array.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/vfio/common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index 4aa86f563c64cab9290efab54d20cb2a30c498aa..059bfdc07a85e2eb908df828c1f42104d683e911 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -1118,7 +1118,7 @@ static int vfio_device_dma_logging_report(VFIODevice *vbasedev, hwaddr iova,
{
uint64_t buf[DIV_ROUND_UP(sizeof(struct vfio_device_feature) +
sizeof(struct vfio_device_feature_dma_logging_report),
- sizeof(__u64))] = {};
+ sizeof(uint64_t))] = {};
struct vfio_device_feature *feature = (struct vfio_device_feature *)buf;
struct vfio_device_feature_dma_logging_report *report =
(struct vfio_device_feature_dma_logging_report *)feature->data;
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PULL 2/2] vfio/pci: Clear MSI-X IRQ index always
2024-01-29 8:41 [PULL 0/2] vfio queue Cédric Le Goater
2024-01-29 8:41 ` [PULL 1/2] vfio: use matching sizeof type Cédric Le Goater
@ 2024-01-29 8:41 ` Cédric Le Goater
2024-01-29 17:22 ` [PULL 0/2] vfio queue Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Cédric Le Goater @ 2024-01-29 8:41 UTC (permalink / raw)
To: qemu-devel; +Cc: Cédric Le Goater, Jing Liu, Alex Williamson
When doing device assignment of a physical device, MSI-X can be
enabled with no vectors enabled and this sets the IRQ index to
VFIO_PCI_MSIX_IRQ_INDEX. However, when MSI-X is disabled, the IRQ
index is left untouched if no vectors are in use. Then, when INTx
is enabled, the IRQ index value is considered incompatible (set to
MSI-X) and VFIO_DEVICE_SET_IRQS fails. QEMU complains with :
qemu-system-x86_64: vfio 0000:08:00.0: Failed to set up TRIGGER eventfd signaling for interrupt INTX-0: VFIO_DEVICE_SET_IRQS failure: Invalid argument
To avoid that, unconditionaly clear the IRQ index when MSI-X is
disabled.
Buglink: https://issues.redhat.com/browse/RHEL-21293
Fixes: 5ebffa4e87e7 ("vfio/pci: use an invalid fd to enable MSI-X")
Cc: Jing Liu <jing2.liu@intel.com>
Cc: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
hw/vfio/pci.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index d7fe06715c4b9cde66a68c31aaf405315921b0d6..4fa387f0430d62ca2ba1b5ae5b7037f8f06b33f9 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -826,9 +826,11 @@ static void vfio_msix_disable(VFIOPCIDevice *vdev)
}
}
- if (vdev->nr_vectors) {
- vfio_disable_irqindex(&vdev->vbasedev, VFIO_PCI_MSIX_IRQ_INDEX);
- }
+ /*
+ * Always clear MSI-X IRQ index. A PF device could have enabled
+ * MSI-X with no vectors. See vfio_msix_enable().
+ */
+ vfio_disable_irqindex(&vdev->vbasedev, VFIO_PCI_MSIX_IRQ_INDEX);
vfio_msi_disable_common(vdev);
vfio_intx_enable(vdev, &err);
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PULL 0/2] vfio queue
2024-01-29 8:41 [PULL 0/2] vfio queue Cédric Le Goater
2024-01-29 8:41 ` [PULL 1/2] vfio: use matching sizeof type Cédric Le Goater
2024-01-29 8:41 ` [PULL 2/2] vfio/pci: Clear MSI-X IRQ index always Cédric Le Goater
@ 2024-01-29 17:22 ` Peter Maydell
2 siblings, 0 replies; 4+ messages in thread
From: Peter Maydell @ 2024-01-29 17:22 UTC (permalink / raw)
To: Cédric Le Goater; +Cc: qemu-devel
On Mon, 29 Jan 2024 at 08:42, Cédric Le Goater <clg@redhat.com> wrote:
>
> The following changes since commit 7a1dc45af581d2b643cdbf33c01fd96271616fbd:
>
> Merge tag 'pull-target-arm-20240126' of https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-01-26 18:16:35 +0000)
>
> are available in the Git repository at:
>
> https://github.com/legoater/qemu/ tags/pull-vfio-20240129
>
> for you to fetch changes up to d2b668fca5652760b435ce812a743bba03d2f316:
>
> vfio/pci: Clear MSI-X IRQ index always (2024-01-29 08:26:25 +0100)
>
> ----------------------------------------------------------------
> vfio queue:
>
> * Array type cleanup
> * Fix for IRQ enablement
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/9.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-01-29 17:22 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-29 8:41 [PULL 0/2] vfio queue Cédric Le Goater
2024-01-29 8:41 ` [PULL 1/2] vfio: use matching sizeof type Cédric Le Goater
2024-01-29 8:41 ` [PULL 2/2] vfio/pci: Clear MSI-X IRQ index always Cédric Le Goater
2024-01-29 17:22 ` [PULL 0/2] vfio queue Peter Maydell
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.