hw/ppc/spapr_vio: Realize SPAPR_VIO_BRIDGE device before accessing it

qbus_new() should not be called on unrealized device.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20231019131647.19690-2-philmd@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2023-10-19 12:01:59 +02:00
parent 0459c141f8
commit 880e26074c

View File

@ -574,13 +574,14 @@ SpaprVioBus *spapr_vio_bus_init(void)
/* Create bridge device */
dev = qdev_new(TYPE_SPAPR_VIO_BRIDGE);
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
/* Create bus on bridge device */
qbus = qbus_new(TYPE_SPAPR_VIO_BUS, dev, "spapr-vio");
bus = SPAPR_VIO_BUS(qbus);
bus->next_reg = SPAPR_VIO_REG_BASE;
sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
/* hcall-vio */
spapr_register_hypercall(H_VIO_SIGNAL, h_vio_signal);