On (Thu) 20 Nov 2014 [09:16:31], Igor Mammedov wrote: > On Thu, 20 Nov 2014 09:49:20 +0530 > Amit Shah <amit.s...@redhat.com> wrote: > > > On (Wed) 19 Nov 2014 [11:08:46], Igor Mammedov wrote: > > > On Wed, 19 Nov 2014 12:51:00 +0530 > > > Amit Shah <amit.s...@redhat.com> wrote: > > > > > > > -static void *acpi_add_rom_blob(AcpiBuildState *build_state, GArray > > > > > *blob, +static ram_addr_t acpi_add_rom_blob(AcpiBuildState > > > > > *build_state, GArray *blob, const char *name) > > > > > { > > > > > return rom_add_blob(name, blob->data, acpi_data_len(blob), -1, > > > > > name, @@ -1777,6 +1781,7 @@ void acpi_setup(PcGuestInfo *guest_info) > > > > > /* Now expose it all to Guest */ > > > > > build_state->table_ram = acpi_add_rom_blob(build_state, > > > > > tables.table_data, ACPI_BUILD_TABLE_FILE); > > > > > + assert(build_state->table_ram != RAM_ADDR_MAX); > > > > > build_state->table_size = acpi_data_len(tables.table_data); > > > > > > > > Isn't an assert too strong if this happens during hotplug? > > > > > > > > I'm trying to follow this code, but looks like this isn't called in > > > > the hotplug path - is that right? > > > yep, it's called only at startup > > > > Thanks; what's the path taken for hotplug, then? (Ensuring we have > > that case covered too). > In case of hotplug ACPI blob doesn't change at all (it has all > possible device objects in it). It changes on the first time BIOS > fetches ROM blob and on reset. > Later during hotplug, guest gets SCI interrupt and runs related to > hotplug event AML method, which fishes out bits necessary for hotplug > via corresponding mmio interface.
Excellent, thanks! Amit