From: Will Deacon <will.deacon@arm.com>
Date: Thu, 4 Nov 2010 17:24:22 +0000 (+0100)
Subject: ARM: 6470/1: atomic64: use generic implementation for OABI configurations
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=d4c7b1f9b41b76f6e794fdc4043f1903809e84d9;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git

ARM: 6470/1: atomic64: use generic implementation for OABI configurations

The old apcs-gnu ABI doesn't guarantee that double words are allocated
to registers with even alignment, causing the 64-bit exclusive memory
operations to be rejected by the assembler.

This patch requires that CONFIG_AEABI is set in order to use the native
atomic operations and falls back to the generic (spinlock) code otherwise.

Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a19a5266d5fc..8ae3d48d504c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -6,7 +6,7 @@ config ARM
 	select HAVE_MEMBLOCK
 	select RTC_LIB
 	select SYS_SUPPORTS_APM_EMULATION
-	select GENERIC_ATOMIC64 if (!CPU_32v6K)
+	select GENERIC_ATOMIC64 if (!CPU_32v6K || !AEABI)
 	select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
 	select HAVE_ARCH_KGDB
 	select HAVE_KPROBES if (!XIP_KERNEL)