On Apr 23 07:21, Klaus Jensen wrote: >From: Klaus Jensen > >Commit 1901b4967c3f changed the nvme device from using a bar exclusive >for MSI-x to sharing it on bar0. > >Unfortunately, the msix_uninit_exclusive_bar() call remains in >nvme_exit() which causes havoc when the device is removed with, say, >device_del. Fix this. > >Additionally, a subregion is added but it is not removed on exit which >causes a reference to linger and the drive to never be unlocked. > >Fixes: 1901b4967c3f ("hw/block/nvme: move msix table and pba to BAR 0") >Signed-off-by: Klaus Jensen >--- > hw/block/nvme.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > >diff --git a/hw/block/nvme.c b/hw/block/nvme.c >index 624a1431d072..5fe082ec34c5 100644 >--- a/hw/block/nvme.c >+++ b/hw/block/nvme.c >@@ -6235,7 +6235,8 @@ static void nvme_exit(PCIDevice *pci_dev) > if (n->pmr.dev) { > host_memory_backend_set_mapped(n->pmr.dev, false); > } >- msix_uninit_exclusive_bar(pci_dev); >+ msix_uninit(pci_dev, &n->bar0, &n->bar0); >+ memory_region_del_subregion(&n->bar0, &n->iomem); > } > > static Property nvme_props[] = { >-- >2.31.1 > Ping for a review on this please :)