sysbus_init_mmio() should not be called on realized device.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/core/sysbus.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c
index 35f902b582..ce54e2c416 100644
--- a/hw/core/sysbus.c
+++ b/hw/core/sysbus.c
@@ -192,6 +192,11 @@ void sysbus_init_mmio(SysBusDevice *dev, MemoryRegion
*memory)
int n;
assert(dev->num_mmio < QDEV_MAX_MMIO);
+ if (DEVICE(dev)->realized) {
+ error_report("sysbus_init_mmio(type:%s) but object is realized",
+ object_get_typename(OBJECT(dev)));
+ abort();
+ }
n = dev->num_mmio++;
dev->mmio[n].addr = -1;
dev->mmio[n].memory = memory;