Message ID | 20230204151027.39007-2-shentey@gmail.com |
---|---|
State | New |
Headers | show |
Series | PC cleanups | expand |
On 4/2/23 16:10, Bernhard Beschow wrote: > sysbus_add_io() just wraps memory_region_add_subregion() while also > obscuring where the memory is attached. So use > memory_region_add_subregion() directly and attach it to the existing > memory region s->bus->address_space_io which is set as an alias to > get_system_io() by the pc machine. > > Signed-off-by: Bernhard Beschow <shentey@gmail.com> > Reviewed-by: Thomas Huth <thuth@redhat.com> > --- > hw/pci-host/i440fx.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c > index 262f82c303..9c6882d3fc 100644 > --- a/hw/pci-host/i440fx.c > +++ b/hw/pci-host/i440fx.c > @@ -27,6 +27,7 @@ > #include "qemu/range.h" > #include "hw/i386/pc.h" > #include "hw/pci/pci.h" > +#include "hw/pci/pci_bus.h" > #include "hw/pci/pci_host.h" > #include "hw/pci-host/i440fx.h" > #include "hw/qdev-properties.h" > @@ -217,10 +218,10 @@ static void i440fx_pcihost_realize(DeviceState *dev, Error **errp) > PCIHostState *s = PCI_HOST_BRIDGE(dev); > SysBusDevice *sbd = SYS_BUS_DEVICE(dev); > > - sysbus_add_io(sbd, 0xcf8, &s->conf_mem); > + memory_region_add_subregion(s->bus->address_space_io, 0xcf8, &s->conf_mem); address_space_io is internal to PCIBus. Better would be adding a helper like pci_bus_io_region() IMO. Anyhow, removing sysbus_add_io() uses is good, so: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/hw/pci-host/i440fx.c b/hw/pci-host/i440fx.c index 262f82c303..9c6882d3fc 100644 --- a/hw/pci-host/i440fx.c +++ b/hw/pci-host/i440fx.c @@ -27,6 +27,7 @@ #include "qemu/range.h" #include "hw/i386/pc.h" #include "hw/pci/pci.h" +#include "hw/pci/pci_bus.h" #include "hw/pci/pci_host.h" #include "hw/pci-host/i440fx.h" #include "hw/qdev-properties.h" @@ -217,10 +218,10 @@ static void i440fx_pcihost_realize(DeviceState *dev, Error **errp) PCIHostState *s = PCI_HOST_BRIDGE(dev); SysBusDevice *sbd = SYS_BUS_DEVICE(dev); - sysbus_add_io(sbd, 0xcf8, &s->conf_mem); + memory_region_add_subregion(s->bus->address_space_io, 0xcf8, &s->conf_mem); sysbus_init_ioports(sbd, 0xcf8, 4); - sysbus_add_io(sbd, 0xcfc, &s->data_mem); + memory_region_add_subregion(s->bus->address_space_io, 0xcfc, &s->data_mem); sysbus_init_ioports(sbd, 0xcfc, 4); /* register i440fx 0xcf8 port as coalesced pio */