Re: [Xen-devel] [PATCH 2/3] x86/acpi: take rsdp address for boot params if available

From: Juergen Gross
Date: Tue Nov 28 2017 - 07:19:33 EST


On 28/11/17 11:18, Roger Pau Monnà wrote:
> On Tue, Nov 28, 2017 at 10:43:59AM +0100, Juergen Gross wrote:
>> In case the rsdp address in struct boot_params is specified don't try
>> to find the table by searching, but take the address directly as set
>> by the boot loader.
>>
>> Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
>> ---
>> drivers/acpi/osl.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
>> index 3bb46cb24a99..3b25e2ad7d75 100644
>> --- a/drivers/acpi/osl.c
>> +++ b/drivers/acpi/osl.c
>> @@ -45,6 +45,10 @@
>> #include <linux/uaccess.h>
>> #include <linux/io-64-nonatomic-lo-hi.h>
>>
>> +#ifdef CONFIG_X86
>> +#include <asm/setup.h>
>> +#endif
>> +
>> #include "internal.h"
>>
>> #define _COMPONENT ACPI_OS_SERVICES
>> @@ -195,6 +199,10 @@ acpi_physical_address __init acpi_os_get_root_pointer(void)
>> if (acpi_rsdp)
>> return acpi_rsdp;
>> #endif
>> +#ifdef CONFIG_X86
>> + if (boot_params.hdr.acpi_rsdp_addr)
>> + return boot_params.hdr.acpi_rsdp_addr;
>> +#endif
>
> I'm struggling to figure out how was PVH getting the RSDP previously,
> because that should be removed now that it's in the zero-page.

I don't think it should be removed, because this was the legacy case
(searching through memory). It was pure luck that Xen put it at the
right location.


Juergen