mirror of
https://git.proxmox.com/git/pve-qemu
synced 2025-08-24 12:35:20 +00:00

Most notabbly, there now is an upstream workaround for the "Windows PCI Label bug" [0] and the revert of QEMU commit 44d975ef34 ("x86: acpi: workaround Windows not handling name references in Package properly") can be dropped. Pick up some other fixes already merged in current master, for emulation as well as x86(_64) KVM, some PCI/USB fixes and a pair of regression fixes for the net subsystem. [0]: https://gitlab.com/qemu-project/qemu/-/issues/774 Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
37 lines
1.5 KiB
Diff
37 lines
1.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Nicholas Piggin <npiggin@gmail.com>
|
|
Date: Thu, 12 Dec 2024 22:04:02 +1000
|
|
Subject: [PATCH] pci/msix: Fix msix pba read vector poll end calculation
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The end vector calculation has a bug that results in polling fewer
|
|
than required vectors when reading at a non-zero offset in PBA memory.
|
|
|
|
Fixes: bbef882cc193 ("msi: add API to get notified about pending bit poll")
|
|
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
|
|
Message-Id: <20241212120402.1475053-1-npiggin@gmail.com>
|
|
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
(cherry picked from commit 42e2a7a0ab23784e44fcb18369e06067abc89305)
|
|
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
|
|
---
|
|
hw/pci/msix.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/hw/pci/msix.c b/hw/pci/msix.c
|
|
index 487e49834e..cc6e79ec67 100644
|
|
--- a/hw/pci/msix.c
|
|
+++ b/hw/pci/msix.c
|
|
@@ -250,7 +250,7 @@ static uint64_t msix_pba_mmio_read(void *opaque, hwaddr addr,
|
|
PCIDevice *dev = opaque;
|
|
if (dev->msix_vector_poll_notifier) {
|
|
unsigned vector_start = addr * 8;
|
|
- unsigned vector_end = MIN(addr + size * 8, dev->msix_entries_nr);
|
|
+ unsigned vector_end = MIN((addr + size) * 8, dev->msix_entries_nr);
|
|
dev->msix_vector_poll_notifier(dev, vector_start, vector_end);
|
|
}
|
|
|