lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 21 Jan 2019 17:42:14 +0800
From:   Chao Fan <fanc.fnst@...fujitsu.com>
To:     Borislav Petkov <bp@...en8.de>
CC:     <linux-kernel@...r.kernel.org>, <x86@...nel.org>,
        <tglx@...utronix.de>, <mingo@...hat.com>, <hpa@...or.com>,
        <keescook@...omium.org>, <bhe@...hat.com>, <msys.mizuma@...il.com>,
        <indou.takao@...fujitsu.com>, <caoj.fnst@...fujitsu.com>
Subject: Re: [PATCH v15 5/6] x86/boot: Parse SRAT address from RSDP and store
 immovable memory

On Mon, Jan 21, 2019 at 05:33:48PM +0800, Chao Fan wrote:
>On Wed, Jan 16, 2019 at 12:01:58PM +0100, Borislav Petkov wrote:
>>On Mon, Jan 07, 2019 at 11:22:42AM +0800, Chao Fan wrote:
>[...]
>>> +
>>> +/* Determine RSDP, based on acpi_os_get_root_pointer(). */
>>> +static acpi_physical_address get_rsdp_addr(void)
>>> +{
>>> +	acpi_physical_address pa;
>>> +
>>> +	pa = get_acpi_rsdp();
>>> +
>>> +	if (!pa)
>>> +		pa = efi_get_rsdp_addr();
>>> +
>>> +	if (!pa)
>>> +		pa = bios_get_rsdp_addr();
>>> +
>>> +	return pa;
>>> +}
>
>Hi Boris,
>
>Talking in Kairui's thread may mislead you, let me clarify:
>I mean I am going to change get_rsdp_addr(). Since I see ACPI code:
>
>>acpi_physical_address __init acpi_os_get_root_pointer(void)
>>{
>>        acpi_physical_address pa;
>>
>>#ifdef CONFIG_KEXEC
>>        if (acpi_rsdp)
>>                return acpi_rsdp;
>>#endif
>>        pa = acpi_arch_get_root_pointer();
>>        if (pa)
>>                return pa;
>
>So we need to parse boot_params->acpi_rsdp_addr also between KEXEC and
>EFI:
>
>static acpi_physical_address get_rsdp_addr(void)
>{
>        acpi_physical_address pa;
>
>        pa = get_acpi_rsdp();
>
>        if (!pa)
>/* This line will be added in next version.*/
>                pa = boot_params->acpi_rsdp_addr;
>
>        if (!pa)
>                pa = efi_get_rsdp_addr();
>
>        if (!pa)
>                pa = bios_get_rsdp_addr();
>
>/* If no acpi_rsdp_addr found in boot_params, fill in it here. */
>
>        return pa;
>}

Or I clear this function as:
static acpi_physical_address get_rsdp_addr(void)
{
        acpi_physical_address pa;

        pa = get_acpi_rsdp();

        if (!pa)
                pa = boot_params->acpi_rsdp_addr;

        if (!pa)
                pa = efi_get_rsdp_addr();

        if (!pa)
                pa = bios_get_rsdp_addr();

        if (pa && !boot_params->acpi_rsdp_addr)
                boot_params->acpi_rsdp_addr = pa;

        return pa;
}

This version may look better, it does not need a bool.

Thanks,
Chao Fan

>
>Then you said I shall fill the boot_params->acpi_rsdp_addr, so in my
>understanding, if there is no acpi_rsdp_addr found in boot_params,
>we can parse RSDP by EFI/BIOS then fill it, other wise if it's found
>int boot_params, we need't to fill it.
>
>Thanks,
>Chao Fan


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ