|
From: | Markus Armbruster |
Subject: | Re: [Qemu-ppc] [Qemu-devel] [PATCH v2 3/4] versatile: remove cannot_destroy_with_object_finalize_yet |
Date: | Tue, 18 Apr 2017 15:25:55 +0200 |
User-agent: | Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) |
Laurent Vivier <address@hidden> writes: > cannot_destroy_with_object_finalize_yet was added by 4c315c2 > ("qdev: Protect device-list-properties against broken devices") > because "realview_pci" and "versatile_pci" were hanging > during "device-list-properties" cleanup (an infinite loop in > bus_unparent()). > > We have this problem because the child is not removed from > the list of the PCI bus child because it has no defined parent: s/child/children/ > qdev_set_parent_bus() set the device parent_bus pointer to bus, and > adds the device in the bus children list, but doesn't update the > device parent pointer. > > To fix the problem, move all the involved parts to the realize function. > > Signed-off-by: Laurent Vivier <address@hidden> The devices aren't unpluggable. There is no unrealize(). How work needs to be spread between init and realize isn't obvious to me in general. I can see this work done both in init and in realize. I figure the move is okay. Reviewed-by: Markus Armbruster <address@hidden>
[Prev in Thread] | Current Thread | [Next in Thread] |