Hello Ninad,

+static void fsi_aspeed_apb2opb_realize(DeviceState *dev, Error **errp)
+{
+    SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
+    AspeedAPB2OPBState *s = ASPEED_APB2OPB(dev);
+    int i;
+
+    sysbus_init_irq(sbd, &s->irq);
+
+    memory_region_init_io(&s->iomem, OBJECT(s), &aspeed_apb2opb_ops, s,
+                          TYPE_ASPEED_APB2OPB, 0x1000);
+    sysbus_init_mmio(sbd, &s->iomem);
+
+    for (i = 0; i < ASPEED_FSI_NUM; i++) {
+        if (!qdev_realize_and_unref(DEVICE(&s->fsi[i]), BUS(&s->opb[i]),


s->fsi[i] is not allocated. We should use qdev_realize instead.

I am not sure I understood this. FSIMasterState fsi[ASPEED_FSI_NUM]; is inside structure AspeedAPB2OPBState so it must be allocated, right?

See the documentation :

  https://www.qemu.org/docs/master/devel/qdev-api.html#c.qdev_realize_and_unref

Thanks,

C.

Reply via email to