qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 08/12] hw/isa: Realize ISA BUS sysbus device before accessing


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 08/12] hw/isa: Realize ISA BUS sysbus device before accessing it
Date: Wed, 18 Oct 2023 20:26:44 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1

On 18/10/23 17:57, Thomas Huth wrote:
On 18/10/2023 16.11, Philippe Mathieu-Daudé wrote:
sysbus_mmio_map() should not be called on unrealized device.

I also cannot spot a sysbus_mmio_map() here ... do you mean qdev_new() instead?

Yeah, bad copy/paste :/


  Thomas

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
  hw/isa/isa-bus.c | 11 +++++++++--
  1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
index a289eccfb1..f1e0f14007 100644
--- a/hw/isa/isa-bus.c
+++ b/hw/isa/isa-bus.c
@@ -52,18 +52,25 @@ static const TypeInfo isa_bus_info = {
  ISABus *isa_bus_new(DeviceState *dev, MemoryRegion* address_space,
                      MemoryRegion *address_space_io, Error **errp)
  {
+    DeviceState *bridge = NULL;
+
      if (isabus) {
          error_setg(errp, "Can't create a second ISA bus");
          return NULL;
      }
      if (!dev) {
-        dev = qdev_new("isabus-bridge");
-        sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal);
+        bridge = qdev_new("isabus-bridge");
+        dev = bridge;
      }
      isabus = ISA_BUS(qbus_new(TYPE_ISA_BUS, dev, NULL));
      isabus->address_space = address_space;
      isabus->address_space_io = address_space_io;
+
+    if (bridge) {
+        sysbus_realize_and_unref(SYS_BUS_DEVICE(bridge), &error_fatal);
+    }
+
      return isabus;
  }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]