SysBusDevice::mmio[] and SysBusDevice::pio[] are kind of internal.
Use the proper accessors.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
 hw/pci-bridge/pci_expander_bridge.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/hw/pci-bridge/pci_expander_bridge.c 
b/hw/pci-bridge/pci_expander_bridge.c
index 1bcceddbc4d..2e84bbe1615 100644
--- a/hw/pci-bridge/pci_expander_bridge.c
+++ b/hw/pci-bridge/pci_expander_bridge.c
@@ -157,13 +157,13 @@ static char *pxb_host_ofw_unit_address(const SysBusDevice 
*dev)
     main_host = PCI_HOST_BRIDGE(pxb_dev_base->parent_bus->parent);
     main_host_sbd = SYS_BUS_DEVICE(main_host);
 
-    if (main_host_sbd->num_mmio > 0) {
-        return g_strdup_printf(HWADDR_FMT_plx ",%x",
-                               main_host_sbd->mmio[0].addr, position + 1);
+    if (sysbus_has_mmio(main_host_sbd, 0)) {
+        MemoryRegion *mr = sysbus_mmio_get_region(main_host_sbd, 0);
+        return g_strdup_printf(HWADDR_FMT_plx ",%x", mr->addr, position + 1);
     }
-    if (main_host_sbd->num_pio > 0) {
-        return g_strdup_printf("i%04x,%x",
-                               main_host_sbd->pio[0], position + 1);
+    if (sysbus_has_pio(main_host_sbd, 0)) {
+        uint32_t addr = sysbus_pio_get_address(main_host_sbd, 0);
+        return g_strdup_printf("i%04x,%x", addr, position + 1);
     }
     return NULL;
 }
-- 
2.51.0


Reply via email to