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 for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210223154758.GF1741768@linux.ibm.com>
Date:   Tue, 23 Feb 2021 17:47:58 +0200
From:   Mike Rapoport <rppt@...ux.ibm.com>
To:     George Kennedy <george.kennedy@...cle.com>
Cc:     David Hildenbrand <david@...hat.com>,
        Andrey Konovalov <andreyknvl@...gle.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Catalin Marinas <catalin.marinas@....com>,
        Vincenzo Frascino <vincenzo.frascino@....com>,
        Dmitry Vyukov <dvyukov@...gle.com>,
        Konrad Rzeszutek Wilk <konrad@...nok.org>,
        Will Deacon <will.deacon@....com>,
        Andrey Ryabinin <aryabinin@...tuozzo.com>,
        Alexander Potapenko <glider@...gle.com>,
        Marco Elver <elver@...gle.com>,
        Peter Collingbourne <pcc@...gle.com>,
        Evgenii Stepanov <eugenis@...gle.com>,
        Branislav Rankov <Branislav.Rankov@....com>,
        Kevin Brodsky <kevin.brodsky@....com>,
        Christoph Hellwig <hch@...radead.org>,
        kasan-dev <kasan-dev@...glegroups.com>,
        Linux ARM <linux-arm-kernel@...ts.infradead.org>,
        Linux Memory Management List <linux-mm@...ck.org>,
        LKML <linux-kernel@...r.kernel.org>,
        Dhaval Giani <dhaval.giani@...cle.com>
Subject: Re: [PATCH] mm, kasan: don't poison boot memory

Hi George,

On Tue, Feb 23, 2021 at 09:35:32AM -0500, George Kennedy wrote:
> 
> On 2/23/2021 5:33 AM, Mike Rapoport wrote:
> > (re-added CC)
> > 
> > On Mon, Feb 22, 2021 at 08:24:59PM -0500, George Kennedy wrote:
> > > On 2/22/2021 4:55 PM, Mike Rapoport wrote:
> > > > On Mon, Feb 22, 2021 at 01:42:56PM -0500, George Kennedy wrote:
> > > > > On 2/22/2021 11:13 AM, David Hildenbrand wrote:
> > > > > > On 22.02.21 16:13, George Kennedy wrote:
> > > > > > 
> > > > > > The PFN 0xbe453 looks a little strange, though. Do we expect ACPI tables
> > > > > > close to 3 GiB ? No idea. Could it be that you are trying to map a wrong
> > > > > > table? Just a guess.
> > > > > > 
> > > > > > > What would be  the correct way to reserve the page so that the above
> > > > > > > would not be hit?
> > > > > > I would have assumed that if this is a binary blob, that someone (which
> > > > > > I think would be acpi code) reserved via memblock_reserve() early during
> > > > > > boot.
> > > > > > 
> > > > > > E.g., see drivers/acpi/tables.c:acpi_table_upgrade()->memblock_reserve().
> > > > > acpi_table_upgrade() gets called, but bails out before memblock_reserve() is
> > > > > called. Thus, it appears no pages are getting reserved.
> > > > acpi_table_upgrade() does not actually reserve memory but rather open
> > > > codes memblock allocation with memblock_find_in_range() +
> > > > memblock_reserve(), so it does not seem related anyway.
> > > > 
> > > > Do you have by chance a full boot log handy?
> > > Hello Mike,
> > > 
> > > Are you after the console output? See attached.
> > > 
> > > It includes my patch to set PG_Reserved along with the dump_page() debug
> > > that David asked for - see: "page:"
> > So, iBFT is indeed at pfn 0xbe453:
> > 
> > [    0.077698] ACPI: iBFT 0x00000000BE453000 000800 (v01 BOCHS  BXPCFACP 00000000      00000000)
> > and it's in E820_TYPE_RAM region rather than in ACPI data:
> > 
> > [    0.000000] BIOS-e820: [mem 0x0000000000810000-0x00000000008fffff] ACPI NVS
> > [    0.000000] BIOS-e820: [mem 0x0000000000900000-0x00000000be49afff] usable
> > [    0.000000] BIOS-e820: [mem 0x00000000be49b000-0x00000000be49bfff] ACPI data
> > 
> > I could not find anywhere in x86 setup or in ACPI tables parsing the code
> > that reserves this memory or any other ACPI data for that matter. It could
> > be that I've missed some copying of the data to statically allocated
> > initial_tables, but AFAICS any ACPI data that was not marked as such in
> > e820 tables by BIOS resides in memory that is considered as free.
> > 
> 
> Close...
> 
> Applied the patch, see "[   30.136157] iBFT detected.", but now hit the
> following (missing iounmap()? see full console output attached):
> 
> diff --git a/drivers/firmware/iscsi_ibft_find.c
> b/drivers/firmware/iscsi_ibft_find.c
> index 64bb945..2e5e040 100644
> --- a/drivers/firmware/iscsi_ibft_find.c
> +++ b/drivers/firmware/iscsi_ibft_find.c
> @@ -80,6 +80,21 @@ static int __init find_ibft_in_mem(void)
>  done:
>         return len;
>  }
> +
> +static void __init acpi_find_ibft_region(void)
> +{
> +       int i;
> +       struct acpi_table_header *table = NULL;
> +
> +       if (acpi_disabled)
> +               return;
> +
> +       for (i = 0; i < ARRAY_SIZE(ibft_signs) && !ibft_addr; i++) {
> +               acpi_get_table(ibft_signs[i].sign, 0, &table);
> +               ibft_addr = (struct acpi_table_ibft *)table;

Can you try adding 

	acpi_put_table(table);

here?

> +       }
> +}
> +

-- 
Sincerely yours,
Mike.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ