[patch V2 11/14] x86/pkru: Provide pkru_get_init_value()

From: Thomas Gleixner
Date: Sat Jun 05 2021 - 20:32:43 EST


When CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is disabled then the following
code fails to compile:

if (cpu_feature_enabled(X86_FEATURE_OSPKE)) {
u32 pkru = READ_ONCE(init_pkru_value);
..
}

because init_pkru_value is defined as '0' which makes READ_ONCE() upset.

Provide an accessor macro to avoid #ifdeffery all over the place.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
V2: New patch
---
arch/x86/include/asm/pgtable.h | 2 ++
1 file changed, 2 insertions(+)

--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -1366,8 +1366,10 @@ static inline pmd_t pmd_swp_clear_uffd_w

#ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
extern u32 init_pkru_value;
+#define pkru_get_init_value() READ_ONCE(init_pkru_value)
#else
#define init_pkru_value 0
+#define pkru_get_init_value() 0
#endif

static inline bool __pkru_allows_read(u32 pkru, u16 pkey)