Re: [PATCH v3 06/19] x86/startup_64: Drop global variables keeping track of LA57 state

From: Borislav Petkov
Date: Wed Feb 07 2024 - 08:30:01 EST


On Mon, Jan 29, 2024 at 07:05:09PM +0100, Ard Biesheuvel wrote:
> static inline bool pgtable_l5_enabled(void)
> {
> return __pgtable_l5_enabled;
> }
> #else
> -#define pgtable_l5_enabled() cpu_feature_enabled(X86_FEATURE_LA57)
> +#define pgtable_l5_enabled() !!(native_read_cr4() & X86_CR4_LA57)
> #endif /* USE_EARLY_PGTABLE_L5 */

Can we drop this ifdeffery and simply have __pgtable_l5_enabled always
present and contain the correct value?

So that we don't have an expensive CR4 read hidden in
pgtable_l5_enabled()?

For the sake of simplicity, pgtable_l5_enabled() can be defined outside
of CONFIG_X86_5LEVEL and since both vendors support 5level now, might as
well start dropping the CONFIG ifdeffery slowly...

Other than that - a nice cleanup!

Thx.

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette