Message ID | 20231018141151.87466-13-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | hw: Strengthen SysBus & QBus API | expand |
On 18/10/2023 16.11, Philippe Mathieu-Daudé wrote: > sysbus_mmio_map() should not be called on unrealized device. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > hw/core/sysbus.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c > index ce54e2c416..a46828a808 100644 > --- a/hw/core/sysbus.c > +++ b/hw/core/sysbus.c > @@ -20,6 +20,7 @@ > #include "qemu/osdep.h" > #include "qapi/error.h" > #include "qemu/module.h" > +#include "qemu/error-report.h" I assume this hunk should go into the previous patch? > #include "hw/sysbus.h" > #include "monitor/monitor.h" > #include "exec/address-spaces.h" > @@ -132,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(); > + } With the hunk moved (or the order of the patches reversed): Reviewed-by: Thomas Huth <thuth@redhat.com>
On 18/10/23 18:13, Thomas Huth wrote: > On 18/10/2023 16.11, Philippe Mathieu-Daudé wrote: >> sysbus_mmio_map() should not be called on unrealized device. >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> --- >> hw/core/sysbus.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c >> index ce54e2c416..a46828a808 100644 >> --- a/hw/core/sysbus.c >> +++ b/hw/core/sysbus.c >> @@ -20,6 +20,7 @@ >> #include "qemu/osdep.h" >> #include "qapi/error.h" >> #include "qemu/module.h" >> +#include "qemu/error-report.h" > > I assume this hunk should go into the previous patch? Oops indeed... > With the hunk moved (or the order of the patches reversed): > > Reviewed-by: Thomas Huth <thuth@redhat.com> Thanks!
diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c index ce54e2c416..a46828a808 100644 --- a/hw/core/sysbus.c +++ b/hw/core/sysbus.c @@ -20,6 +20,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" #include "qemu/module.h" +#include "qemu/error-report.h" #include "hw/sysbus.h" #include "monitor/monitor.h" #include "exec/address-spaces.h" @@ -132,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;
sysbus_mmio_map() should not be called on unrealized device. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/core/sysbus.c | 8 ++++++++ 1 file changed, 8 insertions(+)