On Thu, 23 Jan 2025 at 07:36, Dave Young <dyoung@xxxxxxxxxx> wrote: > > efi_memattr_init() added a sanity check to avoid firmware caused corruption. > The check is based on efi memmap entry numbers, but kexec only takes the > runtime related memmap entries thus this caused many false warnings, see > below thread for details: > > https://lore.kernel.org/all/20250108215957.3437660-2-usamaarif642@xxxxxxxxx/ > > Ard suggests to skip the efi memattr table in kexec, this makes sense because > those memattr fixups are not critical. > > Reported-by: Breno Leitao <leitao@xxxxxxxxxx> > Reported-and-tested-by: Usama Arif <usamaarif642@xxxxxxxxx> > Suggested-by: Ard Biesheuvel <ardb@xxxxxxxxxx> > Signed-off-by: Dave Young <dyoung@xxxxxxxxxx> > > diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c > index 846bf49f2508..553f330198f2 100644 > --- a/arch/x86/platform/efi/quirks.c > +++ b/arch/x86/platform/efi/quirks.c > @@ -561,6 +561,11 @@ int __init efi_reuse_config(u64 tables, int nr_tables) > > if (!efi_guidcmp(guid, SMBIOS_TABLE_GUID)) > ((efi_config_table_64_t *)p)->table = data->smbios; > + > + /* Do not bother to play with mem attr table across kexec */ > + if (!efi_guidcmp(guid, EFI_MEMORY_ATTRIBUTES_TABLE_GUID)) > + ((efi_config_table_64_t *)p)->table = EFI_INVALID_TABLE_ADDR; > + > p += sz; > } > early_memunmap(tablep, nr_tables * sz); > Thanks. I've queued this up now.