On Mon, Mar 12, 2018 at 02:03:17AM +0200, Michael S. Tsirkin wrote: > On Sun, Mar 11, 2018 at 04:46:52PM +0100, Philippe Mathieu-Daudé wrote: > > Hi Michael, Paolo. > > > > Now than all other PCI QOM'ification patches got applied, can you take > > this patch for 2.12? > > > > Thanks, > > > > Phil. > > > > On 12/17/2017 09:49 PM, Philippe Mathieu-Daudé wrote: > > > All PCI devices are now QOM'ified. > > > > > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > > > --- > > > include/hw/pci/pci.h | 1 - > > > hw/pci/pci.c | 14 -------------- > > > 2 files changed, 15 deletions(-) > > > > > > diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h > > > index 8d02a0a383..0f1ed64c2f 100644 > > > --- a/include/hw/pci/pci.h > > > +++ b/include/hw/pci/pci.h > > > @@ -217,7 +217,6 @@ typedef struct PCIDeviceClass { > > > DeviceClass parent_class; > > > > > > void (*realize)(PCIDevice *dev, Error **errp); > > > - int (*init)(PCIDevice *dev);/* TODO convert to realize() and remove > > > */ > > > PCIUnregisterFunc *exit; > > > PCIConfigReadFunc *config_read; > > > PCIConfigWriteFunc *config_write; > > > diff --git a/hw/pci/pci.c b/hw/pci/pci.c > > > index b2d139bd9a..cd25ab6f6b 100644 > > > --- a/hw/pci/pci.c > > > +++ b/hw/pci/pci.c > > > @@ -2054,18 +2054,6 @@ static void pci_qdev_realize(DeviceState *qdev, > > > Error **errp) > > > } > > > } > > > > > > -static void pci_default_realize(PCIDevice *dev, Error **errp) > > > -{ > > > - PCIDeviceClass *pc = PCI_DEVICE_GET_CLASS(dev); > > > - > > > - if (pc->init) { > > > - if (pc->init(dev) < 0) { > > > - error_setg(errp, "Device initialization failed"); > > > - return; > > > - } > > > - } > > > -} > > > - > > > PCIDevice *pci_create_multifunction(PCIBus *bus, int devfn, bool > > > multifunction, > > > const char *name) > > > { > > > @@ -2538,13 +2526,11 @@ MemoryRegion *pci_address_space_io(PCIDevice *dev) > > > static void pci_device_class_init(ObjectClass *klass, void *data) > > > { > > > DeviceClass *k = DEVICE_CLASS(klass); > > > - PCIDeviceClass *pc = PCI_DEVICE_CLASS(klass); > > > > > > k->realize = pci_qdev_realize; > > > k->unrealize = pci_qdev_unrealize; > > > k->bus_type = TYPE_PCI_BUS; > > > k->props = pci_props; > > > - pc->realize = pci_default_realize; > > How about we assert !init here? > > + assert(!pc->init);
Oh sorry I missed the chunk that drops it completely. Will apply. > > > } > > > > > > static void pci_device_class_base_init(ObjectClass *klass, void *data) > > > > >