From: BALATON Zoltan <bala...@eik.bme.hu> An exit function was mistakenly left here but it's not needed because the PCI bars are organised differently in this device. Calling this exit function during device_del was causing an abort with memory_region_del_subregion: `Assertion subregion->container == mr' failed.
Reported-by: Thomas Huth <th...@redhat.com> Signed-off-by: BALATON Zoltan <bala...@eik.bme.hu> Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> --- hw/ide/sii3112.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/hw/ide/sii3112.c b/hw/ide/sii3112.c index e3896c65b4..743a50ed51 100644 --- a/hw/ide/sii3112.c +++ b/hw/ide/sii3112.c @@ -327,17 +327,6 @@ static void sii3112_pci_realize(PCIDevice *dev, Error **errp) qemu_register_reset(sii3112_reset, s); } -static void sii3112_pci_exitfn(PCIDevice *dev) -{ - PCIIDEState *d = PCI_IDE(dev); - int i; - - for (i = 0; i < 2; ++i) { - memory_region_del_subregion(&d->bmdma_bar, &d->bmdma[i].extra_io); - memory_region_del_subregion(&d->bmdma_bar, &d->bmdma[i].addr_ioport); - } -} - static void sii3112_pci_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); @@ -348,7 +337,6 @@ static void sii3112_pci_class_init(ObjectClass *klass, void *data) pd->class_id = PCI_CLASS_STORAGE_RAID; pd->revision = 1; pd->realize = sii3112_pci_realize; - pd->exit = sii3112_pci_exitfn; dc->desc = "SiI3112A SATA controller"; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } -- 2.14.3