]> git.ipfire.org Git - thirdparty/qemu.git/commit
qom: reverse order of instance_post_init calls
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 3 Feb 2025 11:35:39 +0000 (12:35 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 20 May 2025 06:18:53 +0000 (08:18 +0200)
commit220c739903cec99df032219ac94c45b5269a0ab5
tree5fac63709fab495902a93ed1d40cb22fbaa2642f
parent42bc8af14033b9eeeb535449f243767c015f027e
qom: reverse order of instance_post_init calls

Currently, the instance_post_init calls are performed from the leaf
class and all the way up to Object.  This is incorrect because the
leaf class cannot observe property values applied by the superclasses;
for example, a compat property will be set on a device *after*
the class's post_init callback has run.

In particular this makes it impossible for implementations of
accel_cpu_instance_init() to operate based on the actual values of
the properties, though it seems that cxl_dsp_instance_post_init and
rp_instance_post_init might have similar issues.

Follow instead the same order as instance_init, starting with Object
and running the child class's instance_post_init after the parent.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
include/qom/object.h
qom/object.c