We don't need to wait until realize() to create the SDBus, create it in init() directly.
Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Message-Id: <20200705211016.15241-4-f4...@amsat.org> --- hw/sd/milkymist-memcard.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 11f61294fcf..747c5c6136b 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -261,6 +261,9 @@ static void milkymist_memcard_init(Object *obj) memory_region_init_io(&s->regs_region, OBJECT(s), &memcard_mmio_ops, s, "milkymist-memcard", R_MAX * 4); sysbus_init_mmio(dev, &s->regs_region); + + qbus_create_inplace(&s->sdbus, sizeof(s->sdbus), TYPE_SD_BUS, + DEVICE(obj), "sd-bus"); } static void milkymist_memcard_realize(DeviceState *dev, Error **errp) @@ -271,9 +274,6 @@ static void milkymist_memcard_realize(DeviceState *dev, Error **errp) DriveInfo *dinfo; Error *err = NULL; - qbus_create_inplace(&s->sdbus, sizeof(s->sdbus), TYPE_SD_BUS, - dev, "sd-bus"); - /* Create and plug in the sd card */ /* FIXME use a qdev drive property instead of drive_get_next() */ dinfo = drive_get_next(IF_SD); -- 2.26.2