3.16.37-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Catalin Marinas <catalin.marinas@xxxxxxx> commit e47b020a323d1b2a7b1e9aac86e99eae19463630 upstream. This patch brings the PER_LINUX32 /proc/cpuinfo format more in line with the 32-bit ARM one by providing an additional line: model name : ARMv8 Processor rev X (v8l) Acked-by: Will Deacon <will.deacon@xxxxxxx> Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx> Signed-off-by: Will Deacon <will.deacon@xxxxxxx> [bwh: Backported to 3.16: - Adjust filename, context - Open-code MIDR_REVISION()] Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> --- arch/arm64/include/asm/elf.h | 4 ++-- arch/arm64/kernel/setup.c | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h @@ -161,14 +161,14 @@ struct mm_struct; extern unsigned long arch_randomize_brk(struct mm_struct *mm); #define arch_randomize_brk arch_randomize_brk -#ifdef CONFIG_COMPAT - #ifdef __AARCH64EB__ #define COMPAT_ELF_PLATFORM ("v8b") #else #define COMPAT_ELF_PLATFORM ("v8l") #endif +#ifdef CONFIG_COMPAT + #define COMPAT_ELF_ET_DYN_BASE (randomize_et_dyn(2 * TASK_SIZE_32 / 3)) /* AArch32 registers. */ --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -44,6 +44,8 @@ #include <linux/of_platform.h> #include <linux/efi.h> #include <linux/personality.h> +#include <linux/compat.h> +#include <linux/elf.h> #include <asm/fixmap.h> #include <asm/cputype.h> @@ -489,6 +491,7 @@ static const char *compat_hwcap_str[] = static int c_show(struct seq_file *m, void *v) { int i, j; + bool compat = personality(current->personality) == PER_LINUX32; for_each_online_cpu(i) { struct cpuinfo_arm64 *cpuinfo = &per_cpu(cpu_data, i); @@ -500,6 +503,9 @@ static int c_show(struct seq_file *m, vo * "processor". Give glibc what it expects. */ #ifdef CONFIG_SMP + if (compat) + seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n", + midr & 0xf, COMPAT_ELF_PLATFORM); seq_printf(m, "processor\t: %d\n", i); #endif @@ -514,7 +520,7 @@ static int c_show(struct seq_file *m, vo * software which does already (at least for 32-bit). */ seq_puts(m, "Features\t:"); - if (personality(current->personality) == PER_LINUX32) { + if (compat) { #ifdef CONFIG_COMPAT for (j = 0; compat_hwcap_str[j]; j++) if (compat_elf_hwcap & (1 << j)) -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html