The pm initialization code assigns the pcihp IO base and length to -1 on error, but the later code will assume 0 as invalid value.
Fix it initializing the above value to 0 as expected. Signed-off-by: Marcel Apfelbaum <mar...@redhat.com> --- hw/i386/acpi-build.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 0c329fb..2097c4c 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -124,17 +124,19 @@ static void acpi_get_pm_info(AcpiPmInfo *pm) Object *lpc = ich9_lpc_find(); Object *obj = NULL; QObject *o; + int pcihp_io_len, pcihp_io_base; pm->cpu_hp_io_base = 0; - pm->pcihp_io_base = 0; - pm->pcihp_io_len = 0; if (piix) { obj = piix; pm->cpu_hp_io_base = PIIX4_CPU_HOTPLUG_IO_BASE; - pm->pcihp_io_base = + pcihp_io_base = object_property_get_int(obj, ACPI_PCIHP_IO_BASE_PROP, NULL); - pm->pcihp_io_len = + pcihp_io_len = object_property_get_int(obj, ACPI_PCIHP_IO_LEN_PROP, NULL); + + pm->pcihp_io_base = (pcihp_io_base == -1) ? 0 : pcihp_io_base; + pm->pcihp_io_len = (pcihp_io_len == -1) ? 0 : pcihp_io_len; } if (lpc) { obj = lpc; -- 2.4.3