On 07/26/17 at 12:12am, Naoya Horiguchi wrote: > On Mon, Jul 24, 2017 at 02:20:44PM +0100, Matt Fleming wrote: > > On Mon, 10 Jul, at 02:51:36PM, Naoya Horiguchi wrote: > > > EFI_BOOT_SERVICES_{CODE|DATA} regions never overlap the kernel now, > > > so we can clean up the check in efi_reserve_boot_services(). > > > > > > Signed-off-by: Naoya Horiguchi <n-horigu...@ah.jp.nec.com> > > > --- > > > arch/x86/platform/efi/quirks.c | 23 +---------------------- > > > 1 file changed, 1 insertion(+), 22 deletions(-) > > > > Is this true for kernels not using KASLR? > > Thank you for pointing out this. It's not true depending on memmap layout. > If a firmware does not define the memory around the kernel address > (0x1000000 or CONFIG_PHYSICAL_START) as EFI_BOOT_SERVICES_*, no overlap > happens. That's true in my testing server, but I don't think that we can > expect it generally. > > So I think of adding some assertion in the patch 1/2 to detect this overlap > in extract_kernel() even for no KASLR case.
EFI_BOOT_SERVICES_* memory are collected as e820 region of E820_TYPE_RAM, how can we guarantee kernel won't use them after jumping into the running kernel whether KASLR enabled or not? We can only wish that EFI firmware engineer don't put EFI_BOOT_SERVICES_* far from 0x1000000 where normal kernel is loaded.