On Fri, 15 Jan 2021 at 15:45, Markus Armbruster <arm...@redhat.com> wrote: > > The .realize() method realizes the child at (1). It should use > qdev_realize() like we do everywhere else, since commit ce189ab230 > "qdev: Convert bus-less devices to qdev_realize() with Coccinelle". > > It sets a link property from the child back to the parent at (2). Why > do we need a link? Each QOM Object contains a pointer to its parent, > doesn't it?
It does, but what should parent object pointers be used for? My assumption is that you'd only use those where you really wanted to traverse the QOM tree. Generally I would use a link property when I wanted one object to have a pointer to the other regardless of what the QOM-tree relationship happens to be. Today all the users of XHCIState happen to create it in a way that means they're parents of it, but that doesn't seem like it should be an inherent requirement that we bake into its API. thanks -- PMM