Hi Catalin, thanks for review. On Thu, Jun 08, 2017 at 03:09:12PM +0100, Catalin Marinas wrote: > On Sun, Jun 04, 2017 at 02:59:54PM +0300, Yury Norov wrote: > > --- a/arch/arm64/Kconfig > > +++ b/arch/arm64/Kconfig > > @@ -402,7 +402,7 @@ config ARM64_ERRATUM_834220 > > > > config ARM64_ERRATUM_845719 > > bool "Cortex-A53: 845719: a load might read incorrect data" > > - depends on COMPAT > > + depends on AARCH32_EL0 > > default y > > help > > This option adds an alternative code sequence to work around ARM > > @@ -784,7 +784,7 @@ config FORCE_MAX_ZONEORDER > > > > menuconfig ARMV8_DEPRECATED > > bool "Emulate deprecated/obsolete ARMv8 instructions" > > - depends on COMPAT > > + depends on AARCH32_EL0 > > help > > Legacy software support may require certain instructions > > that have been deprecated or obsoleted in the architecture. > > @@ -1062,9 +1062,15 @@ menu "Userspace binary formats" > > source "fs/Kconfig.binfmt" > > > > config COMPAT > > + bool > > + depends on AARCH32_EL0 > > You could just use "def_bool y" here > > > + > > +config AARCH32_EL0 > > bool "Kernel support for 32-bit EL0" > > + def_bool y > > depends on ARM64_4K_PAGES || EXPERT > > select COMPAT_BINFMT_ELF if BINFMT_ELF > > + select COMPAT > > and avoid the explicit select. in patch 20 COMPAT becomes depending also on ARM64_ILP32, like this: - depends on AARCH32_EL0 + depends on AARCH32_EL0 || ARM64_ILP32 So this is a preparation for it. If it looks confusing, I think it's better to underline it in the description to the patch in addition to this: > From now, AARCH32_EL0 (former COMPAT) config option means the support of > AARCH32 userspace, ARM64_ILP32 - support of ILP32 ABI (see next patches), > and COMPAT indicates that one of them, or both, is enabled. But if you prefer, I can do like you suggested here and make COMPAT depend on AARCH32_EL0 in the last patch. > > > select HAVE_UID16 > > select OLD_SIGSUSPEND3 > > select COMPAT_OLD_SIGACTION > [...] > > --- a/arch/arm64/kernel/cpuinfo.c > > +++ b/arch/arm64/kernel/cpuinfo.c > > @@ -139,15 +139,17 @@ static int c_show(struct seq_file *m, void *v) > > */ > > seq_puts(m, "Features\t:"); > > if (compat) { > > -#ifdef CONFIG_COMPAT > > - for (j = 0; compat_hwcap_str[j]; j++) > > - if (compat_elf_hwcap & (1 << j)) > > - seq_printf(m, " %s", compat_hwcap_str[j]); > > - > > - for (j = 0; compat_hwcap2_str[j]; j++) > > - if (compat_elf_hwcap2 & (1 << j)) > > - seq_printf(m, " %s", compat_hwcap2_str[j]); > > -#endif /* CONFIG_COMPAT */ > > +#ifdef CONFIG_AARCH32_EL0 > > + if (personality(current->personality) == PER_LINUX32) { > > + for (j = 0; compat_hwcap_str[j]; j++) > > + if (compat_elf_hwcap & (1 << j)) > > + seq_printf(m, " %s", compat_hwcap_str[j]); > > + > > + for (j = 0; compat_hwcap2_str[j]; j++) > > + if (compat_elf_hwcap2 & (1 << j)) > > + seq_printf(m, " %s", compat_hwcap2_str[j]); > > + } > > +#endif /* CONFIG_AARCH32_EL0 */ > > I don't understand this hunk. Why do you need another check on > personality? "compat" is already true if PER_LINUX32. I think it's rebase issue. I'll fix it. Yury -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html