Re: [PATCH v9 5/8] x86/boot: Add get_acpi_rsdp() to parse RSDP in cmdlien from kexec

From: Baoquan He
Date: Mon Oct 22 2018 - 03:36:55 EST


On 10/22/18 at 03:30pm, Chao Fan wrote:
> On Mon, Oct 22, 2018 at 02:06:13PM +0800, Baoquan He wrote:
> >On 10/22/18 at 05:30am, Fan, Chao wrote:
> >> >> +static void get_acpi_rsdp(acpi_physical_address *rsdp_addr)
> >> >> +{
> >> >> +#ifdef CONFIG_KEXEC
> >> >> + unsigned long long res;
> >> >> + int len = 0;
> >> >> + char *val;
> >> >> +
> >> >> + val = malloc(20);
> >> >
> >> >Why is the length 20? Defined a macro?
> >> >
> >>
> >> Not a calculation, if it's enough to store the address, that will be OK.
> >
> >Sorry, I didn't catch. It's 16 in setup_acpi_rsdp() of
> >drivers/acpi/osl.c . What does 'that' mean?
>
> The second parameter of kstrtoull(), the 16 you mentioned means
> hexadecimal, not the length.

Yes, you are right.

> I checked my host and guest, the value are ACPI20=0xbfbfa014, ACPI20=0xdb807000.
> The length of memory is 8. Well the max memory address is 16, add
> "0x" and '\0' is 19. So I set it as 20.
> I am not sure whether 8 is enough for the address, if OK, 11 will
> be enough, or 19 is OK.

I am fine with 20. Thanks.