ARM: 8028/1: move __fixup_smp out of init section
authorRob Herring <robh@kernel.org>
Wed, 16 Apr 2014 14:38:26 +0000 (15:38 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 25 May 2014 22:46:51 +0000 (23:46 +0100)
With large kernel builds such as allyesconfig exceeding maximum relative
branch offsets, the init section will be too far away to branch to
directly. This causes veneers to be added by the linker, but veneers
don't work before the MMU is enabled. Fix this by moving __fixup_smp to
the .head.text section as it is not very big.

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/head.S

index f8c08839edf3053c3ee9ac884fab3f61e8ba84b3..73dbee3097e4130bdfc67d299dd9d4599b6afca5 100644 (file)
@@ -475,7 +475,7 @@ ENDPROC(__turn_mmu_on)
 
 
 #ifdef CONFIG_SMP_ON_UP
-       __INIT
+       __HEAD
 __fixup_smp:
        and     r3, r9, #0x000f0000     @ architecture version
        teq     r3, #0x000f0000         @ CPU ID supported?