sysbus_mmio_map() should not be called on unrealized device.
Reviewed-by: Thomas Huth <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
hw/core/sysbus.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c
index 8f53cb926b..a46828a808 100644
--- a/hw/core/sysbus.c
+++ b/hw/core/sysbus.c
@@ -133,6 +133,13 @@ static void sysbus_mmio_map_common(SysBusDevice *dev, int
n, hwaddr addr,
{
assert(n >= 0 && n < dev->num_mmio);
+ if (!DEVICE(dev)->realized) {
+ error_report("sysbus_mmio_map(type:%s, index:%d,
addr:0x%"HWADDR_PRIx","
+ " prio:%d) but object is not realized",
+ object_get_typename(OBJECT(dev)), n, addr, priority);
+ abort();
+ }
+
if (dev->mmio[n].addr == addr) {
/* ??? region already mapped here. */
return;
--
2.41.0