Messages in this thread | | | From | Andrew Cooper <> | Subject | Re: [PATCH 06/16] x86/boot: Setup memory protection for bzImage code | Date | Thu, 20 Oct 2022 16:51:00 +0000 |
| |
On 20/10/2022 14:30, Evgeniy Baskov wrote: > On 2022-10-19 10:57, Andrew Cooper wrote: >> On 06/09/2022 11:41, Evgeniy Baskov wrote: >>> diff --git a/arch/x86/boot/compressed/head_64.S >>> b/arch/x86/boot/compressed/head_64.S >>> index 5273367283b7..889ca7176aa7 100644 >>> --- a/arch/x86/boot/compressed/head_64.S >>> +++ b/arch/x86/boot/compressed/head_64.S >>> @@ -602,6 +603,28 @@ SYM_FUNC_START_LOCAL_NOALIGN(.Lrelocated) >>> jmp *%rax >>> SYM_FUNC_END(.Lrelocated) >>> >>> +SYM_FUNC_START_LOCAL_NOALIGN(startup32_enable_nx_if_supported) >>> + pushq %rbx >>> + >>> + leaq has_nx(%rip), %rcx >>> + >>> + mov $0x80000001, %eax >>> + cpuid >>> + btl $20, %edx >> >> btl $(X86_FEATURE_NX & 31), %edx >> >> But also need to check for the availability of the extended leaf in the >> first place. > > Yes, thank you for suggestion, that looks more readable. I will > also add the leaf node check. Is there any processor though that > supports long mode and does not support 0x80000001 leaf node?
No, good point. The Long Mode feature bit is in this leaf too.
~Andrew
| |