|
@@ -18,6 +18,7 @@
|
|
|
#include <linux/page_idle.h>
|
|
|
#include <linux/shmem_fs.h>
|
|
|
#include <linux/uaccess.h>
|
|
|
+#include <linux/pkeys.h>
|
|
|
|
|
|
#include <asm/elf.h>
|
|
|
#include <asm/tlb.h>
|
|
@@ -673,13 +674,16 @@ 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)] = "",
|
|
|
+#if VM_PKEY_BIT4
|
|
|
+ [ilog2(VM_PKEY_BIT4)] = "",
|
|
|
#endif
|
|
|
+#endif /* CONFIG_ARCH_HAS_PKEYS */
|
|
|
};
|
|
|
size_t i;
|
|
|
|
|
@@ -727,10 +731,6 @@ static int smaps_hugetlb_range(pte_t *pte, unsigned long hmask,
|
|
|
}
|
|
|
#endif /* HUGETLB_PAGE */
|
|
|
|
|
|
-void __weak arch_show_smap(struct seq_file *m, struct vm_area_struct *vma)
|
|
|
-{
|
|
|
-}
|
|
|
-
|
|
|
#define SEQ_PUT_DEC(str, val) \
|
|
|
seq_put_decimal_ull_width(m, str, (val) >> 10, 8)
|
|
|
static int show_smap(struct seq_file *m, void *v, int is_pid)
|
|
@@ -835,7 +835,8 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
|
|
|
seq_puts(m, " kB\n");
|
|
|
}
|
|
|
if (!rollup_mode) {
|
|
|
- arch_show_smap(m, vma);
|
|
|
+ if (arch_pkeys_enabled())
|
|
|
+ seq_printf(m, "ProtectionKey: %8u\n", vma_pkey(vma));
|
|
|
show_smap_vma_flags(m, vma);
|
|
|
}
|
|
|
m_cache_vma(m, vma);
|