Message ID | 20180306232851.8DD617456A5@zero.eik.bme.hu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Mar 07, 2018 at 12:15:15AM +0100, BALATON Zoltan wrote: > 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 <thuth@redhat.com> > Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Applied to ppc-for-2.12, thanks. > --- > hw/ide/sii3112.c | 12 ------------ > 1 file changed, 12 deletions(-) > > diff --git a/hw/ide/sii3112.c b/hw/ide/sii3112.c > index e3896c6..743a50e 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); > }
On 03/06/2018 09:23 PM, David Gibson wrote: > On Wed, Mar 07, 2018 at 12:15:15AM +0100, BALATON Zoltan wrote: >> 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 <thuth@redhat.com> >> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> > > Applied to ppc-for-2.12, thanks. > Beat me to it, thanks! I'm a little distracted right now. >> --- >> hw/ide/sii3112.c | 12 ------------ >> 1 file changed, 12 deletions(-) >> >> diff --git a/hw/ide/sii3112.c b/hw/ide/sii3112.c >> index e3896c6..743a50e 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); >> } >
diff --git a/hw/ide/sii3112.c b/hw/ide/sii3112.c index e3896c6..743a50e 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); }
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 <thuth@redhat.com> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> --- hw/ide/sii3112.c | 12 ------------ 1 file changed, 12 deletions(-)