On Tue, Jun 14, 2022 at 03:02:23PM +0300, Kirill A. Shutemov wrote: > diff --git a/drivers/firmware/efi/Kconfig b/drivers/firmware/efi/Kconfig > index 7aa4717cdcac..e1270beff4dc 100644 > --- a/drivers/firmware/efi/Kconfig > +++ b/drivers/firmware/efi/Kconfig > @@ -305,6 +305,20 @@ config EFI_COCO_SECRET > virt/coco/efi_secret module to access the secrets, which in turn > allows userspace programs to access the injected secrets. > > +config UNACCEPTED_MEMORY > + bool > + depends on EFI_STUB > + help > + Some Virtual Machine platforms, such as Intel TDX, require > + some memory to be "accepted" by the guest before it can be used. > + This mechanism helps prevent malicious hosts from making changes > + to guest memory. > + > + UEFI specification v2.9 introduced EFI_UNACCEPTED_MEMORY memory type. > + > + This option adds support for unaccepted memory and makes such memory > + usable by the kernel. > + This looks weird: $ grep EFI_STUB .config CONFIG_EFI_STUB=y $ grep UNACCEPTED_MEMORY .config $ So the bool needs to have a text string after it so that it is selectable or how is UNACCEPTED_MEMORY supposed to be enabled otherwise? If I add the string and select UNACCEPTED_MEMORY, it won't build: mm/page_alloc.c: In function ‘accept_page’: mm/page_alloc.c:1013:9: error: implicit declaration of function ‘accept_memory’ [-Werror=implicit-function-declaration] 1013 | accept_memory(start, start + (PAGE_SIZE << order)); | ^~~~~~~~~~~~~ mm/page_alloc.c: In function ‘page_contains_unaccepted’: mm/page_alloc.c:1029:16: error: implicit declaration of function ‘range_contains_unaccepted_memory’; did you mean ‘page_contains_unaccepted’? [-Werror=implicit-function-declaration] 1029 | return range_contains_unaccepted_memory(start, end); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | page_contains_unaccepted mm/memblock.c: In function ‘memblock_alloc_range_nid’: mm/memblock.c:1415:9: error: implicit declaration of function ‘accept_memory’ [-Werror=implicit-function-declaration] 1415 | accept_memory(found, found + size); | ^~~~~~~~~~~~~ cc1: some warnings being treated as errors make[1]: *** [scripts/Makefile.build:249: mm/memblock.o] Error 1 make[1]: *** Waiting for unfinished jobs.... cc1: some warnings being treated as errors make[1]: *** [scripts/Makefile.build:249: mm/page_alloc.o] Error 1 make: *** [Makefile:1843: mm] Error 2 make: *** Waiting for unfinished jobs.... so this is weird. > diff --git a/drivers/firmware/efi/libstub/x86-stub.c b/drivers/firmware/efi/libstub/x86-stub.c > index 504955368934..b91c89100b2d 100644 > --- a/drivers/firmware/efi/libstub/x86-stub.c > +++ b/drivers/firmware/efi/libstub/x86-stub.c > @@ -15,6 +15,7 @@ > #include <asm/setup.h> > #include <asm/desc.h> > #include <asm/boot.h> > +#include <asm/unaccepted_memory.h> > > #include "efistub.h" > > @@ -607,6 +608,17 @@ setup_e820(struct boot_params *params, struct setup_data *e820ext, u32 e820ext_s > e820_type = E820_TYPE_PMEM; > break; > > + case EFI_UNACCEPTED_MEMORY: > + if (!IS_ENABLED(CONFIG_UNACCEPTED_MEMORY)) { > + efi_warn_once("The system has unaccepted memory," > + " but kernel does not support it\n"); > + efi_warn_once("Consider enabling CONFIG_UNACCEPTED_MEMORY\n"); > + continue; > + } So that it can be grepped for: diff --git a/drivers/firmware/efi/libstub/x86-stub.c b/drivers/firmware/efi/libstub/x86-stub.c index b91c89100b2d..8be6b675e08e 100644 --- a/drivers/firmware/efi/libstub/x86-stub.c +++ b/drivers/firmware/efi/libstub/x86-stub.c @@ -610,9 +610,8 @@ setup_e820(struct boot_params *params, struct setup_data *e820ext, u32 e820ext_s case EFI_UNACCEPTED_MEMORY: if (!IS_ENABLED(CONFIG_UNACCEPTED_MEMORY)) { - efi_warn_once("The system has unaccepted memory," - " but kernel does not support it\n"); - efi_warn_once("Consider enabling CONFIG_UNACCEPTED_MEMORY\n"); + efi_warn_once( +"The system has unaccepted memory, but kernel does not support it.\nConsider enabling CONFIG_UNACCEPTED_MEMORY\n"); continue; } e820_type = E820_TYPE_RAM; Thx. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette