On Thu, May 22, 2014 at 12:18 PM, Andreas Färber <afaer...@suse.de> wrote: > Am 22.05.2014 00:04, schrieb Paolo Bonzini: >> Il 21/05/2014 22:22, Stefan Hajnoczi ha scritto: >>> virtio-blk-pci, virtio-blk-s390, and virtio-blk-ccw all duplicate the >>> qdev properties of their VirtIOBlock child. This approach does not work >>> well with string or pointer properties since we must be careful about >>> leaking or double-freeing them. >>> >>> Use the QOM alias property to forward property accesses to the >>> VirtIOBlock child. This way no duplication is necessary. >>> >>> Remember to stop calling virtio_blk_set_conf() so that we don't clobber >>> the values already set on the VirtIOBlock instance. >> >> Which properties are _not_ being added? This is probably needed for all >> other virtio devices so a generic solution would be nice. > > "type", "realized" and the child<> property for VirtIODevice come to > mind, possibly one or two more. > > If we follow a generic scheme, we could add an .instance_post_init hook > for VirtIOPCIProxy iterating over all properties and blacklisting some.
I think the trick is to alias all the qdev properties, not the QOM ones. That way we get all the explicitly declared properties and none of the implicit ones. Stefan