On 03/12/2018 01:04 AM, Michael S. Tsirkin wrote: > 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.
Thanks! > >>>> } >>>> >>>> static void pci_device_class_base_init(ObjectClass *klass, void *data) >>>> >> >>