]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: 7150/1: Allow kernel unaligned accesses on ARMv6+ processors
authorCatalin Marinas <catalin.marinas@arm.com>
Mon, 7 Nov 2011 17:05:53 +0000 (18:05 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 26 Nov 2011 17:08:33 +0000 (09:08 -0800)
commit 8428e84d42179c2a00f5f6450866e70d802d1d05 upstream.

Recent gcc versions generate unaligned accesses by default on ARMv6 and
later processors. This patch ensures that the SCTLR.A bit is always
cleared on such processors to avoid kernel traping before
alignment_init() is called.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: John Linn <John.Linn@xilinx.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/arm/kernel/head.S

index 742b6108a00168b8ed8c391c6d8e8b1b9c438fc6..fed957a6ff3bf395568142c807b94ce34439d82f 100644 (file)
@@ -356,7 +356,7 @@ __secondary_data:
  *  r13 = *virtual* address to jump to upon completion
  */
 __enable_mmu:
-#ifdef CONFIG_ALIGNMENT_TRAP
+#if defined(CONFIG_ALIGNMENT_TRAP) && __LINUX_ARM_ARCH__ < 6
        orr     r0, r0, #CR_A
 #else
        bic     r0, r0, #CR_A