diff options
| author | Klaus Jensen <k.jensen@samsung.com> | 2024-11-10 14:04:27 +0100 |
|---|---|---|
| committer | Klaus Jensen <k.jensen@samsung.com> | 2024-12-03 07:28:27 +0100 |
| commit | 9162f101257639cc4c7e20f72f77268b1256dd79 (patch) | |
| tree | 4ec382ef397cc05785d69b8c5caa312f102dad91 /hw/nvme/ctrl.c | |
| parent | eb22a064455aeebc105cc89bf77f48aa18b52938 (diff) | |
| download | focaccia-qemu-9162f101257639cc4c7e20f72f77268b1256dd79.tar.gz focaccia-qemu-9162f101257639cc4c7e20f72f77268b1256dd79.zip | |
hw/nvme: fix msix_uninit with exclusive bar
Commit fa905f65c554 introduced a machine compatibility parameter to
enable an exclusive bar for msix. It failed to account for this when
cleaning up. Make sure that if an exclusive bar is enabled, we use the
proper cleanup routine.
Cc: qemu-stable@nongnu.org
Fixes: fa905f65c554 ("hw/nvme: add machine compatibility parameter to enable msix exclusive bar")
Reviewed-by: Jesper Wendel Devantier <foss@defmacro.it>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Diffstat (limited to 'hw/nvme/ctrl.c')
| -rw-r--r-- | hw/nvme/ctrl.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index 69bce20f66..13898d5827 100644 --- a/hw/nvme/ctrl.c +++ b/hw/nvme/ctrl.c @@ -8904,7 +8904,12 @@ static void nvme_exit(PCIDevice *pci_dev) pcie_sriov_pf_exit(pci_dev); } - msix_uninit(pci_dev, &n->bar0, &n->bar0); + if (n->params.msix_exclusive_bar && !pci_is_vf(pci_dev)) { + msix_uninit_exclusive_bar(pci_dev); + } else { + msix_uninit(pci_dev, &n->bar0, &n->bar0); + } + memory_region_del_subregion(&n->bar0, &n->iomem); } |