On Tue, 20 Feb 2024 at 19:45, Borislav Petkov <bp@xxxxxxxxx> wrote: > > On Tue, Feb 13, 2024 at 01:41:48PM +0100, Ard Biesheuvel wrote: > > From: Ard Biesheuvel <ardb@xxxxxxxxxx> > > > > Assigning the 5-level paging related global variables from the earliest > > C code using explicit references that use the 1:1 translation of memory > > is unnecessary, as the startup code itself does not rely on them to > > create the initial page tables, and this is all it should be doing. So > > defer these assignments to the primary C entry code that executes via > > the ordinary kernel virtual mapping. > > > > Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx> > > --- > > arch/x86/kernel/head64.c | 44 +++++++------------- > > 1 file changed, 14 insertions(+), 30 deletions(-) > > Whoops: > Right, this is the same issue as in #11 - in both cases, the extern declaration of __pgtable_l5_enabled needs to be visible regardless of CONFIG_X86_5LEVEL. I'll fix both cases for v5. > arch/x86/kernel/head64.c: In function ‘x86_64_start_kernel’: > arch/x86/kernel/head64.c:442:17: error: ‘__pgtable_l5_enabled’ undeclared (first use in this function); did you mean ‘pgtable_l5_enabled’? > 442 | __pgtable_l5_enabled = 1; > | ^~~~~~~~~~~~~~~~~~~~ > | pgtable_l5_enabled > arch/x86/kernel/head64.c:442:17: note: each undeclared identifier is reported only once for each function it appears in > make[4]: *** [scripts/Makefile.build:243: arch/x86/kernel/head64.o] Error 1 > make[3]: *** [scripts/Makefile.build:481: arch/x86/kernel] Error 2 > make[2]: *** [scripts/Makefile.build:481: arch/x86] Error 2 > make[2]: *** Waiting for unfinished jobs.... > make[1]: *** [/mnt/kernel/kernel/2nd/linux/Makefile:1921: .] Error 2 > make: *** [Makefile:240: __sub-make] Error 2 > > > -- > Regards/Gruss, > Boris. > > https://people.kernel.org/tglx/notes-about-netiquette