]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
mm/pkeys, x86, powerpc: Display pkey in smaps if arch supports pkeys
authorRam Pai <linuxram@us.ibm.com>
Fri, 13 Apr 2018 13:55:07 +0000 (23:55 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 9 May 2018 01:51:49 +0000 (11:51 +1000)
Currently the architecture specific code is expected to display the
protection keys in smap for a given vma. This can lead to redundant
code and possibly to divergent formats in which the key gets
displayed.

This patch changes the implementation. It displays the pkey only if
the architecture support pkeys, i.e arch_pkeys_enabled() returns true.

x86 arch_show_smap() function is not needed anymore, delete it.

Signed-off-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
[mpe: Split out from larger patch, rebased on header changes]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Dave Hansen <dave.hansen@intel.com>
arch/x86/kernel/setup.c
fs/proc/task_mmu.c

index 5c623dfe39d159822f12602e2f1f7ae4d9024f6d..2f86d883dd9508992adc57fcfcf3e8056554ebde 100644 (file)
@@ -1312,11 +1312,3 @@ static int __init register_kernel_offset_dumper(void)
        return 0;
 }
 __initcall(register_kernel_offset_dumper);
-
-void arch_show_smap(struct seq_file *m, struct vm_area_struct *vma)
-{
-       if (!boot_cpu_has(X86_FEATURE_OSPKE))
-               return;
-
-       seq_printf(m, "ProtectionKey:  %8u\n", vma_pkey(vma));
-}
index c2163606e6fba075f691a44075036ca6895520d6..93cea7b07a80d9a781329aa592320177669b7a3f 100644 (file)
@@ -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>
@@ -730,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)
@@ -838,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);