[PATCH v6 12/21] arm64:ilp32: share HWCAP between LP64 and ILP32

Yury Norov ynorov at caviumnetworks.com
Thu Jan 7 15:34:30 PST 2016


From: Andrew Pinski <apinski at cavium.com>

Signed-off-by: Andrew Pinski <Andrew.Pinski at caviumnetworks.com>
Signed-off-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
Signed-off-by: Christoph Muellner <christoph.muellner at theobroma-systems.com>
Signed-off-by: Yury Norov <ynorov at caviumnetworks.com>
Reviewed-by: David Daney <ddaney at caviumnetworks.com>
---
 arch/arm64/include/asm/hwcap.h | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/include/asm/hwcap.h b/arch/arm64/include/asm/hwcap.h
index 400b80b..bdb1ae6 100644
--- a/arch/arm64/include/asm/hwcap.h
+++ b/arch/arm64/include/asm/hwcap.h
@@ -47,9 +47,17 @@
 #define ELF_HWCAP		(elf_hwcap)
 
 #ifdef CONFIG_COMPAT
-#define COMPAT_ELF_HWCAP	(compat_elf_hwcap)
-#define COMPAT_ELF_HWCAP2	(compat_elf_hwcap2)
 extern unsigned int compat_elf_hwcap, compat_elf_hwcap2;
+#define COMPAT_ELF_HWCAP	\
+	(is_a32_compat_task()	\
+	  ? compat_elf_hwcap	\
+	  : (u32) elf_hwcap)
+
+#define COMPAT_ELF_HWCAP2	\
+	(is_a32_compat_task()	\
+	  ? compat_elf_hwcap2	\
+	  : (u32) (elf_hwcap >> 32))
+
 #endif
 
 enum {
-- 
2.5.0




More information about the linux-arm-kernel mailing list