[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 03/20] acpi/hvmloader: Initialize vm_gid data outside ACPI code
On 06/02/2016 09:03 AM, Jan Beulich wrote: >>>> On 06.04.16 at 03:25, <boris.ostrovsky@xxxxxxxxxx> wrote: >> --- a/tools/firmware/hvmloader/acpi/build.c >> +++ b/tools/firmware/hvmloader/acpi/build.c >> @@ -448,32 +448,24 @@ static int construct_secondary_tables(unsigned long >> *table_ptrs, >> * >> * Return 0 if memory failure, != 0 if success >> */ >> -static int new_vm_gid(struct acpi_info *acpi_info) >> +static int new_vm_gid(struct acpi_config *config) >> { >> - uint64_t vm_gid[2], *buf; >> - const char * s; >> - char *end; >> - >> - acpi_info->vm_gid_addr = 0; >> - >> - /* read ID and check for 0 */ >> - s = xenstore_read("platform/generation-id", "0:0"); >> - vm_gid[0] = strtoll(s, &end, 0); >> - vm_gid[1] = 0; >> - if ( end && end[0] == ':' ) >> - vm_gid[1] = strtoll(end+1, NULL, 0); >> - if ( !vm_gid[0] && !vm_gid[1] ) >> + uint64_t *buf; >> + >> + config->acpi_info.vm_gid_addr = 0; >> + >> + /* check for 0 ID*/ >> + if ( !config->vm_gid[0] && !config->vm_gid[1] ) >> return 1; >> >> /* copy to allocate BIOS memory */ >> - buf = (uint64_t *) mem_alloc(sizeof(vm_gid), 8); >> + buf = (uint64_t *) mem_alloc(sizeof(config->vm_gid), 8); >> if ( !buf ) >> return 0; >> - memcpy(buf, vm_gid, sizeof(vm_gid)); >> + memcpy(buf, config->vm_gid, sizeof(config->vm_gid)); >> >> /* set into ACPI table and HVM param the address */ >> - acpi_info->vm_gid_addr = virt_to_phys(buf); >> - hvm_param_set(HVM_PARAM_VM_GENERATION_ID_ADDR, acpi_info->vm_gid_addr); >> + config->acpi_info.vm_gid_addr = virt_to_phys(buf); > Here things get interesting: If different entities are responsible for > filling different parts of acpi_info, I think this should be documented > in the structure definition. There are IN and OUT parameters in acpi_info, and this is not documented. It should be. > Can't this be left to the entity initializing > that structure? vm_gid_addr is calculated by (what will be) libacpi, it's an OUT parameter. -boris _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |