Message ID | 20180508145948.9492-9-mpe@ellerman.id.au (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 05/08/2018 07:59 AM, Michael Ellerman wrote: > 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. For this, along with 6/8 and 7/8: Reviewed-by: Dave Hansen <dave.hansen@intel.com>
Dave Hansen <dave.hansen@intel.com> writes: > On 05/08/2018 07:59 AM, Michael Ellerman wrote: >> 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. > > > For this, along with 6/8 and 7/8: > > Reviewed-by: Dave Hansen <dave.hansen@intel.com> Thanks for reviewing them all. cheers
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 5c623dfe39d1..2f86d883dd95 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -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)); -} diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index c2163606e6fb..93cea7b07a80 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -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);