提交 14b7a14d 编写于 作者: Y Yury Norov 提交者: Chen Jun

arm64: change compat_elf_hwcap and compat_elf_hwcap2 prefix to a32

maillist inclusion
category: feature
bugzilla: 46790
CVE: NA

Reference: https://github.com/norov/linux/commits/ilp32-5.2

--------------------------------

ILP32 patch series introduces new type of binaries which is also compat.
So rename existung aarch32 compat_elf_hwcap's helps to avoid confusing.
Signed-off-by: NYury Norov <ynorov@caviumnetworks.com>
Signed-off-by: NYury Norov <ynorov@marvell.com>

 Conflicts:
	arch/arm64/kernel/cpuinfo.c
	drivers/clocksource/arm_arch_timer.c
Signed-off-by: NXiongfeng Wang <wangxiongfeng2@huawei.com>
Acked-by: NXie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: NChen Jun <chenjun102@huawei.com>
上级 f1955f2f
......@@ -235,7 +235,7 @@ static inline void arch_timer_set_evtstrm_feature(void)
{
cpu_set_named_feature(EVTSTRM);
#ifdef CONFIG_AARCH32_EL0
compat_elf_hwcap |= COMPAT_HWCAP_EVTSTRM;
a32_elf_hwcap |= COMPAT_HWCAP_EVTSTRM;
#endif
}
......
......@@ -114,7 +114,7 @@
#define ELF_HWCAP2 cpu_get_elf_hwcap2()
#ifdef CONFIG_AARCH32_EL0
extern unsigned int compat_elf_hwcap, compat_elf_hwcap2;
extern unsigned int a32_elf_hwcap, a32_elf_hwcap2;
#endif
enum {
......
......@@ -20,8 +20,8 @@
})
#define COMPAT_ARCH_DLINFO
#define COMPAT_ELF_HWCAP (compat_elf_hwcap)
#define COMPAT_ELF_HWCAP2 (compat_elf_hwcap2)
#define COMPAT_ELF_HWCAP (a32_elf_hwcap)
#define COMPAT_ELF_HWCAP2 (a32_elf_hwcap2)
#define compat_arch_setup_additional_pages \
aarch32_setup_additional_pages
......
......@@ -85,13 +85,13 @@
static unsigned long elf_hwcap __read_mostly;
#ifdef CONFIG_AARCH32_EL0
#define COMPAT_ELF_HWCAP_DEFAULT \
#define AARCH32_EL0_ELF_HWCAP_DEFAULT \
(COMPAT_HWCAP_HALF|COMPAT_HWCAP_THUMB|\
COMPAT_HWCAP_FAST_MULT|COMPAT_HWCAP_EDSP|\
COMPAT_HWCAP_TLS|COMPAT_HWCAP_IDIV|\
COMPAT_HWCAP_LPAE)
unsigned int compat_elf_hwcap __read_mostly = COMPAT_ELF_HWCAP_DEFAULT;
unsigned int compat_elf_hwcap2 __read_mostly;
unsigned int a32_elf_hwcap __read_mostly = AARCH32_EL0_ELF_HWCAP_DEFAULT;
unsigned int a32_elf_hwcap2 __read_mostly;
#endif
DECLARE_BITMAP(cpu_hwcaps, ARM64_NCAPS);
......@@ -2306,10 +2306,10 @@ static void __init cap_set_elf_hwcap(const struct arm64_cpu_capabilities *cap)
break;
#ifdef CONFIG_AARCH32_EL0
case CAP_COMPAT_HWCAP:
compat_elf_hwcap |= (u32)cap->hwcap;
a32_elf_hwcap |= (u32)cap->hwcap;
break;
case CAP_COMPAT_HWCAP2:
compat_elf_hwcap2 |= (u32)cap->hwcap;
a32_elf_hwcap2 |= (u32)cap->hwcap;
break;
#endif
default:
......@@ -2329,10 +2329,10 @@ static bool cpus_have_elf_hwcap(const struct arm64_cpu_capabilities *cap)
break;
#ifdef CONFIG_AARCH32_EL0
case CAP_COMPAT_HWCAP:
rc = (compat_elf_hwcap & (u32)cap->hwcap) != 0;
rc = (a32_elf_hwcap & (u32)cap->hwcap) != 0;
break;
case CAP_COMPAT_HWCAP2:
rc = (compat_elf_hwcap2 & (u32)cap->hwcap) != 0;
rc = (a32_elf_hwcap2 & (u32)cap->hwcap) != 0;
break;
#endif
default:
......
......@@ -136,7 +136,7 @@ static const char *const compat_hwcap2_str[] = {
static int c_show(struct seq_file *m, void *v)
{
int i, j;
bool compat = personality(current->personality) == PER_LINUX32;
bool aarch32 = personality(current->personality) == PER_LINUX32;
for_each_online_cpu(i) {
struct cpuinfo_arm64 *cpuinfo = &per_cpu(cpu_data, i);
......@@ -148,7 +148,7 @@ static int c_show(struct seq_file *m, void *v)
* "processor". Give glibc what it expects.
*/
seq_printf(m, "processor\t: %d\n", i);
if (compat)
if (aarch32)
seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n",
MIDR_REVISION(midr), COMPAT_ELF_PLATFORM);
......@@ -163,10 +163,10 @@ static int c_show(struct seq_file *m, void *v)
* software which does already (at least for 32-bit).
*/
seq_puts(m, "Features\t:");
if (compat) {
if (aarch32) {
#ifdef CONFIG_AARCH32_EL0
for (j = 0; j < ARRAY_SIZE(compat_hwcap_str); j++) {
if (compat_elf_hwcap & (1 << j)) {
if (a32_elf_hwcap & (1 << j)) {
/*
* Warn once if any feature should not
* have been present on arm64 platform.
......@@ -179,7 +179,7 @@ static int c_show(struct seq_file *m, void *v)
}
for (j = 0; j < ARRAY_SIZE(compat_hwcap2_str); j++)
if (compat_elf_hwcap2 & (1 << j))
if (a32_elf_hwcap2 & (1 << j))
seq_printf(m, " %s", compat_hwcap2_str[j]);
#endif /* CONFIG_AARCH32_EL0 */
} else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册