[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH][v4] xen: Pass the location of the ACPI RSDP to DOM0.
>>> On 24.01.14 at 18:15, Philip Wernersbach <philip.wernersbach@xxxxxxxxx> >>> wrote: > xen: [v4] Pass the location of the ACPI RSDP to DOM0. > > Some machines, such as recent IBM servers, only allow the OS to get the > ACPI RSDP from EFI. Since Xen nukes DOM0's ability to access EFI, DOM0 > cannot get the RSDP on these machines, leading to all sorts of > functionality reductions. As said before - the description reads as if Xen did something wrong here. I think I explained in enough detail why this _has_ to be that way. Hence this description is at least misleading, and thus not acceptable. > --- a/xen/arch/x86/acpi/boot.c > +++ b/xen/arch/x86/acpi/boot.c > @@ -57,6 +57,7 @@ bool_t __initdata acpi_lapic; > bool_t __initdata acpi_ioapic; > > bool_t acpi_skip_timer_override __initdata; > +bool_t acpi_rsdp_passthrough __initdata; I see absolutely no reason why this option can't be contained to setup.c - (static, not declaration in any header). And you surely don't need the multiple successive blanks. > --- a/xen/arch/x86/setup.c > +++ b/xen/arch/x86/setup.c > @@ -75,6 +75,11 @@ custom_param("acpi", parse_acpi_param); > boolean_param("acpi_skip_timer_override", acpi_skip_timer_override); > > /* **** Linux config option: propagated to domain0. */ > +/* acpi_rsdp_passthrough: Explicitly pass the ACPI RSDP pointer to */ > +/* domain0 via the acpi_rsdp option. */ > +boolean_param("acpi_rsdp_passthrough", acpi_rsdp_passthrough); > + > +/* **** Linux config option: propagated to domain0. */ > /* noapic: Disable IOAPIC setup. */ > boolean_param("noapic", skip_ioapic_setup); > > @@ -1378,6 +1383,26 @@ void __init __start_xen(unsigned long mbi_p) > safe_strcat(dom0_cmdline, " acpi="); > safe_strcat(dom0_cmdline, acpi_param); > } > + if ( efi_enabled && acpi_rsdp_passthrough && > + !strstr(dom0_cmdline, "acpi_rsdp=") ) > + { > + acpi_physical_address rp = acpi_os_get_root_pointer(); > + char rp_str[sizeof(acpi_physical_address)*2 + 3]; > + > + if ( rp ) > + { If you already restrict the scopes of the newly added variables (which I appreciate), please move the declaration of rp_str here. > + snprintf(rp_str, sizeof(acpi_physical_address)*2 + 3, > + "%p", (void *)rp); Both the use of %p and the cast to void * seem pretty bogus. I don't recall earlier reviews having requested you to do so... Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |