#define _PAGE_BIT_SOFTW2       10      /* " */
 #define _PAGE_BIT_SOFTW3       11      /* " */
 #define _PAGE_BIT_PAT_LARGE    12      /* On 2MB or 1GB pages */
+#define _PAGE_BIT_SOFTW4       58      /* available for programmer */
+#define _PAGE_BIT_PKEY_BIT0    59      /* Protection Keys, bit 1/4 */
+#define _PAGE_BIT_PKEY_BIT1    60      /* Protection Keys, bit 2/4 */
+#define _PAGE_BIT_PKEY_BIT2    61      /* Protection Keys, bit 3/4 */
+#define _PAGE_BIT_PKEY_BIT3    62      /* Protection Keys, bit 4/4 */
+#define _PAGE_BIT_NX           63      /* No execute: only valid after cpuid check */
+
 #define _PAGE_BIT_SPECIAL      _PAGE_BIT_SOFTW1
 #define _PAGE_BIT_CPA_TEST     _PAGE_BIT_SOFTW1
 #define _PAGE_BIT_HIDDEN       _PAGE_BIT_SOFTW3 /* hidden by kmemcheck */
 #define _PAGE_BIT_SOFT_DIRTY   _PAGE_BIT_SOFTW3 /* software dirty tracking */
-#define _PAGE_BIT_SOFTW4       58      /* available for programmer */
-#define _PAGE_BIT_DEVMAP               _PAGE_BIT_SOFTW4
-#define _PAGE_BIT_NX           63      /* No execute: only valid after cpuid check */
+#define _PAGE_BIT_DEVMAP       _PAGE_BIT_SOFTW4
 
 /* If _PAGE_BIT_PRESENT is clear, we use these: */
 /* - if the user mapped it with PROT_NONE; pte_present gives true */
 #define _PAGE_PAT_LARGE (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE)
 #define _PAGE_SPECIAL  (_AT(pteval_t, 1) << _PAGE_BIT_SPECIAL)
 #define _PAGE_CPA_TEST (_AT(pteval_t, 1) << _PAGE_BIT_CPA_TEST)
+#ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
+#define _PAGE_PKEY_BIT0        (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT0)
+#define _PAGE_PKEY_BIT1        (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT1)
+#define _PAGE_PKEY_BIT2        (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT2)
+#define _PAGE_PKEY_BIT3        (_AT(pteval_t, 1) << _PAGE_BIT_PKEY_BIT3)
+#else
+#define _PAGE_PKEY_BIT0        (_AT(pteval_t, 0))
+#define _PAGE_PKEY_BIT1        (_AT(pteval_t, 0))
+#define _PAGE_PKEY_BIT2        (_AT(pteval_t, 0))
+#define _PAGE_PKEY_BIT3        (_AT(pteval_t, 0))
+#endif
 #define __HAVE_ARCH_PTE_SPECIAL
 
 #ifdef CONFIG_KMEMCHECK