Hi All, On Wed, Jun 12, 2013 at 7:15 PM, Andreas Färber <afaer...@suse.de> wrote: > Am 10.06.2013 04:08, schrieb Anthony Liguori: >> Peter Crosthwaite <peter.crosthwa...@xilinx.com> writes: >> >> What's weird about this is that you aren't necessarily calling >> Device::realize() here, you're really calling super()::realize(). > > We can certainly fix that by passing ObjectClass *oc argument instead of > DeviceState *dev and using object_class_get_parent(oc) - dc is used > uninitialized above. > >> I really don't know whether it's a better approach or not. > > It does save LOCs and should work with sane class_inits. > >> Another option is to have a VirtioDevice::realize() that virtio devices >> overload such that you don't have to explicitly call the super() >> version. The advantage of this approach is that you don't have to >> explicitly call the super version. > > The disadvantage is that we then have no chance to solve Jesse's > virtio-net issue this way (cf. cover letter), the only improvement would > be Error propagation. > > Just let me know which path to pursue here. We could start by converting > *::init to realize signature and then follow up with either conversion. > Would that be acceptable to move forward? > Long-term a VirtioDevice::realize() would be blurring semantics though. > > Partially affects pending ISA series as well (PIT/PIC). >
This got merged, so I took the opportunity to workshop changing one of them to use this super idea for the sake of discussion. Patches on list. Please review in the context of this discussion. Regards, Peter