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:   Wed, 16 Jan 2019 15:08:42 +0800
From:   Kairui Song <kasong@...hat.com>
To:     Borislav Petkov <bp@...en8.de>
Cc:     linux-kernel@...r.kernel.org, tglx@...utronix.de, mingo@...hat.com,
        hpa@...or.com, x86@...nel.org, Dave Young <dyoung@...hat.com>,
        Baoquan He <bhe@...hat.com>, kexec@...ts.infradead.org,
        akpm@...ux-foundation.org, robert.moore@...el.com,
        erik.schmauss@...el.com, rafael.j.wysocki@...el.com,
        Len Brown <lenb@...nel.org>,
        Chao Fan <fanc.fnst@...fujitsu.com>
Subject: Re: [PATCH v2 2/2] x86, kexec_file_load: make it work with
 efi=noruntime or efi=old_map

On Wed, Jan 16, 2019 at 7:10 AM Borislav Petkov <bp@...en8.de> wrote:

> > +#ifdef CONFIG_ACPI
> > +     /* Setup ACPI RSDP pointer in case EFI is not available in second kernel */
> > +     if (!acpi_disabled && (!efi_enabled(EFI_RUNTIME_SERVICES) || efi_enabled(EFI_OLD_MEMMAP))) {
> > +             /* Copied from acpi_os_get_root_pointer accordingly */
> > +             params->acpi_rsdp_addr = boot_params.acpi_rsdp_addr;
> > +             if (!params->acpi_rsdp_addr) {
> > +                     if (efi_enabled(EFI_CONFIG_TABLES)) {
> > +                             if (efi.acpi20 != EFI_INVALID_TABLE_ADDR)
> > +                                     params->acpi_rsdp_addr = efi.acpi20;
> > +                             else if (efi.acpi != EFI_INVALID_TABLE_ADDR)
> > +                                     params->acpi_rsdp_addr = efi.acpi;
> > +                     } else if (IS_ENABLED(CONFIG_ACPI_LEGACY_TABLES_LOOKUP)) {
> > +                             acpi_find_root_pointer(&params->acpi_rsdp_addr);
> > +                     }
> > +             }
> > +             if (!params->acpi_rsdp_addr)
> > +                     pr_warn("RSDP is not available for second kernel\n");
> > +     }
> >  #endif
>
> Amazing the amount of ACPI RDSP parsing and fiddling patches flying
> around these days...
>
> In any case, this needs to be synchronized with:
>
> https://lkml.kernel.org/r/20190107032243.25324-1-fanc.fnst@cn.fujitsu.com
>
> and checked whether the above can be used instead of sprinkling of ACPI
> parsing code left and right.
>
> Thx.

Hi thanks for the suggestion.

I didn't see a way to reuse things in that patch series, situation is
different, in that patch it needs to get RSDP in very early boot stage
so it did everything from scratch, in this patch kexec_file_load need
to get RSDP too, but everything is well setup so things are a lot
easier, just read from current boot_prams, efi and fallback to
acpi_find_root_pointer should be good.

And that patch series also need to consider boot_params.acpi_rsdp_addr
value, or it won't work if the system is rebooted with kexec, efi is
disabled and acpi_rsdp is provided by boot_params (Xen PVH guests also
need to get acpi_rsdp from boot_params according to commit message of
ae7e1238e68f2a472a125673ab506d49158c1889). Will add some comment and
discuss.

>
> --
> Regards/Gruss,
>     Boris.
>
> Good mailing practices for 400: avoid top-posting and trim the reply.
--
Best Regards,
Kairui Song

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ