>>> typedef struct PnvChipClass {
>>> /*< private >*/
>>> @@ -75,6 +95,7 @@ typedef struct PnvChipClass {
>>>
>>> hwaddr xscom_base;
>>>
>>> + void (*realize)(PnvChip *chip, Error **errp);
>>
>> This looks the wrong way round from how things are usually done.
>> Rather than having the base class realize() call the subclass specific
>> realize hook, it's more usual for the subclass to set the
>> dc->realize() and have it call a k->parent_realize() to call up the
>> chain. grep for device_class_set_parent_realize() for some more
>> examples.
>
> Ah. That is more to my liking. There are a couple of models following
> the wrong object pattern, xics, vio. I will check them.
So XICS is causing some head-aches because the ics-kvm model inherits
from ics-simple which inherits from ics-base. so we have a grand-parent
class to handle.
if we could affiliate ics-kvm directly to ics-base it would make the
family affair easier. we need to check migration though.
C.