On 06/15/2016 11:56 AM, Markus Armbruster wrote: > Range pci_info.w32 records the location of the PCI hole. > > It's initialized to empty when QOM zeroes I440FXState. That's a fine > value for a still unknown PCI hole. > > i440fx_init() sets pci_info.w32.begin = below_4g_mem_size. Changes > the PCI hole from empty to [below_4g_mem_size, UINT64_MAX]. That's a > bogus value. > > i440fx_pcihost_initfn() sets pci_info.end = IO_APIC_DEFAULT_ADDRESS. > Since i440fx_init() ran already, this changes the PCI hole to > [below_4g_mem_size, IO_APIC_DEFAULT_ADDRESS-1]. That's the correct > value. > > Setting the bounds of the PCI hole in two separate places is > confusing, and begs the question whether the bogus intermediate value > could be used by something, or what would happen if we somehow managed > to realize an i440FX device without having run the board init function > i440fx_init() first. > > Avoid the confusion by setting the (constant) upper bound along with > the lower bound in i440fx_init(). > > Signed-off-by: Markus Armbruster > --- > hw/pci-host/piix.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > Reviewed-by: Eric Blake -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org