|
From: | Cao jin |
Subject: | Re: [Qemu-devel] [PATCH 3/5] PXB: convert to realize() |
Date: | Tue, 22 Dec 2015 17:16:20 +0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 |
On 12/22/2015 03:34 PM, Marcel Apfelbaum wrote:
On 12/22/2015 05:58 AM, Cao jin wrote:On 12/21/2015 11:49 PM, Paolo Bonzini wrote:On 20/12/2015 12:38, Cao jin wrote:+ object_unref(OBJECT(ds)); + object_unref(OBJECT(bds)); + object_unref(OBJECT(bus));I think these should be object_unparent, not unref.But, it seems these 3 objects isn`t added as a child-property via object_property_add_child() during creation, so OBJECT(ds)->parent(so does the other 2) will be NULL, and so object_unparent will do nothing?qdev_init_nofail adds them (qdev_init_nofail -> object_property_set_bool -> device_set_realized -> object_property_add_child). If you haven't reached qdev_init_nofail, you should indeed unref ds and bds instead. However, the bus should be unparented because pci_bus_new makes it a child of ds (pci_bus_new -> qbus_create -> qbus_realize -> object_property_add_child).Yes...that`s true. and @Marcel, I think maybe this is final decision?I say add a debug trace line before pxb_register_bus (or use the debugger) and check ds->parent, bds->parent and bus->parent.
uh..sorry I don`t get it, what does the debug trace line/use debugger mean?
Run the qemu with -device pxb,bus=80,... and for every one that its parent is not null add unparent. :)
don`t get it too, could you detail it?
Thanks, MarcelPaolo .
-- Yours Sincerely, Cao Jin
[Prev in Thread] | Current Thread | [Next in Thread] |