Hi,

>> -static int usb_ehci_initfn(PCIDevice *dev)
>> +static void usb_ehci_initfn(EHCIState *s, DeviceState *dev)
>>  {
>> -    EHCIState *s = DO_UPCAST(EHCIState, dev, dev);

>> +static int usb_ehci_pci_initfn(PCIDevice *dev)
>> +{
>> +    EHCIPCIState *i = DO_UPCAST(EHCIPCIState, pcidev, dev);
> 
> Same as discussed for Peter's patchset, this should be using a QOM cast
> macro and may need an abstract base type if there is no unique type
> matching EHCIPCIState struct.

--verbose please.

This is exactly like it used to be.  PCIDeviceClass->init() gets passed
in a PCIDevice pointer and uses DO_UPCAST to get the container struct
carrying the ehci state (EHCIState before the patch, EHCIPCIState now).
 This is common practice all over the tree.

> Should I send you a follow-up to squash if this is the approach we are
> going to take?

If there is a new, more QOM-ish way to do the same feel free to send
patches.  I see that as independent cleanup though, not as something
which should be squashed into this patch.

cheers,
  Gerd


Reply via email to