On 7/29/19 3:03 PM, Peter Maydell wrote: > On Mon, 1 Jul 2019 at 13:31, Philippe Mathieu-Daudé <phi...@redhat.com> wrote: >> >> As explained in commit aff39be0ed97: >> >> Both functions, object_initialize() and object_property_add_child() >> increase the reference counter of the new object, so one of the >> references has to be dropped afterwards to get the reference >> counting right. Otherwise the child object will not be properly >> cleaned up when the parent gets destroyed. >> Thus let's use now object_initialize_child() instead to get the >> reference counting here right. >> >> Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> >> --- >> hw/arm/exynos4_boards.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/hw/arm/exynos4_boards.c b/hw/arm/exynos4_boards.c >> index ac0b0dc2a9..5dd53d2a23 100644 >> --- a/hw/arm/exynos4_boards.c >> +++ b/hw/arm/exynos4_boards.c >> @@ -129,8 +129,8 @@ exynos4_boards_init_common(MachineState *machine, >> exynos4_boards_init_ram(s, get_system_memory(), >> exynos4_board_ram_size[board_type]); >> >> - object_initialize(&s->soc, sizeof(s->soc), TYPE_EXYNOS4210_SOC); >> - qdev_set_parent_bus(DEVICE(&s->soc), sysbus_get_default()); >> + sysbus_init_child_obj(OBJECT(machine), "soc", >> + &s->soc, sizeof(s->soc), TYPE_EXYNOS4210_SOC); >> object_property_set_bool(OBJECT(&s->soc), true, "realized", >> &error_fatal); > > I suspect the code change here is correct but it doesn't seem > to match the commit message -- the old code is not calling > object_property_add_child() at all, and the new code does not > call object_initialize_child()...
OK, will improve, thanks!