In pc_q35.c the PCI host bridge's io and memory space is initialized with get_system_memory() and get_system_io() respectively. Therefore, using pci_address_space() and pci_address_space_io() is equivalent. All in all this makes the LPC function respect whatever memory spaces the PCI bus was set up with.
Signed-off-by: Bernhard Beschow <shen...@gmail.com> --- hw/isa/lpc_ich9.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c index 9ab966ef88..1b7e5585b3 100644 --- a/hw/isa/lpc_ich9.c +++ b/hw/isa/lpc_ich9.c @@ -506,10 +506,10 @@ static void ich9_lpc_rcba_update(ICH9LPCState *lpc, uint32_t rcba_old) uint32_t rcba = pci_get_long(lpc->d.config + ICH9_LPC_RCBA); if (rcba_old & ICH9_LPC_RCBA_EN) { - memory_region_del_subregion(get_system_memory(), &lpc->rcrb_mem); + memory_region_del_subregion(pci_address_space(&lpc->d), &lpc->rcrb_mem); } if (rcba & ICH9_LPC_RCBA_EN) { - memory_region_add_subregion_overlap(get_system_memory(), + memory_region_add_subregion_overlap(pci_address_space(&lpc->d), rcba & ICH9_LPC_RCBA_BA_MASK, &lpc->rcrb_mem, 1); } @@ -695,7 +695,7 @@ static void ich9_lpc_realize(PCIDevice *d, Error **errp) return; } - isa_bus = isa_bus_new(DEVICE(d), get_system_memory(), get_system_io(), + isa_bus = isa_bus_new(dev, pci_address_space(d), pci_address_space_io(d), errp); if (!isa_bus) { return; -- 2.39.1