File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -18,10 +18,22 @@ struct paging_config paging_prepare(void)
18
18
{
19
19
struct paging_config paging_config = {};
20
20
21
- /* Check if LA57 is desired and supported */
22
- if (IS_ENABLED (CONFIG_X86_5LEVEL ) && native_cpuid_eax (0 ) >= 7 &&
23
- (native_cpuid_ecx (7 ) & (1 << (X86_FEATURE_LA57 & 31 ))))
21
+ /*
22
+ * Check if LA57 is desired and supported.
23
+ *
24
+ * There are two parts to the check:
25
+ * - if the kernel supports 5-level paging: CONFIG_X86_5LEVEL=y
26
+ * - if the machine supports 5-level paging:
27
+ * + CPUID leaf 7 is supported
28
+ * + the leaf has the feature bit set
29
+ *
30
+ * That's substitute for boot_cpu_has() in early boot code.
31
+ */
32
+ if (IS_ENABLED (CONFIG_X86_5LEVEL ) &&
33
+ native_cpuid_eax (0 ) >= 7 &&
34
+ (native_cpuid_ecx (7 ) & (1 << (X86_FEATURE_LA57 & 31 )))) {
24
35
paging_config .l5_required = 1 ;
36
+ }
25
37
26
38
return paging_config ;
27
39
}
You can’t perform that action at this time.
0 commit comments