[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191205211532.GA10177@weiser.dinsnail.net>
Date: Thu, 5 Dec 2019 22:15:32 +0100
From: Michael Weiser <michael@...ser.dinsnail.net>
To: Dave Young <dyoung@...hat.com>
Cc: Ingo Molnar <mingo@...nel.org>, linux-efi@...r.kernel.org,
x86@...nel.org, linux-kernel@...r.kernel.org,
Ard Biesheuvel <ard.biesheuvel@...aro.org>,
kexec@...ts.infradead.org, Ingo Molnar <mingo@...hat.com>,
Borislav Petkov <bp@...en8.de>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
"H. Peter Anvin" <hpa@...or.com>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH] x86/efi: update e820 about reserved EFI boot services
data to fix kexec breakage
On Thu, Dec 05, 2019 at 06:55:45PM +0800, Dave Young wrote:
> > esrt: Unsupported ESRT version 2904149718861218184.
> >
> > The ESRT memory stays in EFI boot services data, and it was reserved
> > in kernel via efi_mem_reserve(). The initial purpose of the reservation
> > is to reuse the EFI boot services data across kexec reboot. For example
> > the BGRT image data and some ESRT memory like Michael reported.
> >
> > But although the memory is reserved it is not updated in the X86 E820 table,
> > and kexec_file_load() iterates system RAM in the IO resource list to find places
> > for kernel, initramfs and other stuff. In Michael's case the kexec loaded
> > initramfs overwrote the ESRT memory and then the failure happened.
> >
> > Since kexec_file_load() depends on the E820 table being updated, just fix this
> > by updating the reserved EFI boot services memory as reserved type in E820.
> Thanks for the amending, also thank all for the review and test.
Same from me, particularly everyone's patience with my haphazard
guesswork around an area I clearly know nothing about. :)
--
Thanks,
Michael
Powered by blists - more mailing lists