|
@@ -30,6 +30,17 @@ extern u32 initial_allocation_mask; /* bits set for reserved keys */
|
|
|
#define ARCH_VM_PKEY_FLAGS (VM_PKEY_BIT0 | VM_PKEY_BIT1 | VM_PKEY_BIT2 | \
|
|
|
VM_PKEY_BIT3 | VM_PKEY_BIT4)
|
|
|
|
|
|
+/* Override any generic PKEY permission defines */
|
|
|
+#define PKEY_DISABLE_EXECUTE 0x4
|
|
|
+#define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS | \
|
|
|
+ PKEY_DISABLE_WRITE | \
|
|
|
+ PKEY_DISABLE_EXECUTE)
|
|
|
+
|
|
|
+static inline u64 pkey_to_vmflag_bits(u16 pkey)
|
|
|
+{
|
|
|
+ return (((u64)pkey << VM_PKEY_SHIFT) & ARCH_VM_PKEY_FLAGS);
|
|
|
+}
|
|
|
+
|
|
|
#define arch_max_pkey() pkeys_total
|
|
|
|
|
|
#define pkey_alloc_mask(pkey) (0x1 << pkey)
|