mm, powerpc, x86: define VM_PKEY_BITx bits if CONFIG_ARCH_HAS_PKEYS is enabled
VM_PKEY_BITx are defined only if CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is enabled. Powerpc also needs these bits. Hence lets define the VM_PKEY_BITx bits for any architecture that enables CONFIG_ARCH_HAS_PKEYS. Reviewed-by: Dave Hansen <dave.hansen@intel.com> Signed-off-by: Ram Pai <linuxram@us.ibm.com> Reviewed-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
6da6c0db53
commit
5212213aa5
|
@ -26,6 +26,8 @@ extern u32 initial_allocation_mask; /* bits set for reserved keys */
|
|||
# define VM_PKEY_BIT2 VM_HIGH_ARCH_2
|
||||
# define VM_PKEY_BIT3 VM_HIGH_ARCH_3
|
||||
# define VM_PKEY_BIT4 VM_HIGH_ARCH_4
|
||||
#elif !defined(VM_PKEY_BIT4)
|
||||
# define VM_PKEY_BIT4 VM_HIGH_ARCH_4
|
||||
#endif
|
||||
|
||||
#define ARCH_VM_PKEY_FLAGS (VM_PKEY_BIT0 | VM_PKEY_BIT1 | VM_PKEY_BIT2 | \
|
||||
|
|
|
@ -673,13 +673,13 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
|
|||
[ilog2(VM_MERGEABLE)] = "mg",
|
||||
[ilog2(VM_UFFD_MISSING)]= "um",
|
||||
[ilog2(VM_UFFD_WP)] = "uw",
|
||||
#ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
|
||||
#ifdef CONFIG_ARCH_HAS_PKEYS
|
||||
/* These come out via ProtectionKey: */
|
||||
[ilog2(VM_PKEY_BIT0)] = "",
|
||||
[ilog2(VM_PKEY_BIT1)] = "",
|
||||
[ilog2(VM_PKEY_BIT2)] = "",
|
||||
[ilog2(VM_PKEY_BIT3)] = "",
|
||||
#endif
|
||||
#endif /* CONFIG_ARCH_HAS_PKEYS */
|
||||
};
|
||||
size_t i;
|
||||
|
||||
|
|
|
@ -228,15 +228,16 @@ extern unsigned int kobjsize(const void *objp);
|
|||
#define VM_HIGH_ARCH_4 BIT(VM_HIGH_ARCH_BIT_4)
|
||||
#endif /* CONFIG_ARCH_USES_HIGH_VMA_FLAGS */
|
||||
|
||||
#if defined(CONFIG_X86)
|
||||
# define VM_PAT VM_ARCH_1 /* PAT reserves whole VMA at once (x86) */
|
||||
#if defined (CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS)
|
||||
#ifdef CONFIG_ARCH_HAS_PKEYS
|
||||
# define VM_PKEY_SHIFT VM_HIGH_ARCH_BIT_0
|
||||
# define VM_PKEY_BIT0 VM_HIGH_ARCH_0 /* A protection key is a 4-bit value */
|
||||
# define VM_PKEY_BIT1 VM_HIGH_ARCH_1
|
||||
# define VM_PKEY_BIT2 VM_HIGH_ARCH_2
|
||||
# define VM_PKEY_BIT3 VM_HIGH_ARCH_3
|
||||
#endif
|
||||
#endif /* CONFIG_ARCH_HAS_PKEYS */
|
||||
|
||||
#if defined(CONFIG_X86)
|
||||
# define VM_PAT VM_ARCH_1 /* PAT reserves whole VMA at once (x86) */
|
||||
#elif defined(CONFIG_PPC)
|
||||
# define VM_SAO VM_ARCH_1 /* Strong Access Ordering (powerpc) */
|
||||
#elif defined(CONFIG_PARISC)
|
||||
|
|
Loading…
Reference in New Issue