diff options
author | Rob Herring <robh@kernel.org> | 2014-04-16 10:38:26 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-05-25 18:46:51 -0400 |
commit | 1dc5455f6f0b2422b410cc913e8af32a617ba921 (patch) | |
tree | 8d12dcbffddcecd66b5c785ecee46a535e66f514 /arch/arm/kernel | |
parent | 07b403415884e961920f55e6db462dff15d9df5a (diff) |
ARM: 8028/1: move __fixup_smp out of init section
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>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/head.S | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index f8c08839edf3..73dbee3097e4 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S | |||
@@ -475,7 +475,7 @@ ENDPROC(__turn_mmu_on) | |||
475 | 475 | ||
476 | 476 | ||
477 | #ifdef CONFIG_SMP_ON_UP | 477 | #ifdef CONFIG_SMP_ON_UP |
478 | __INIT | 478 | __HEAD |
479 | __fixup_smp: | 479 | __fixup_smp: |
480 | and r3, r9, #0x000f0000 @ architecture version | 480 | and r3, r9, #0x000f0000 @ architecture version |
481 | teq r3, #0x000f0000 @ CPU ID supported? | 481 | teq r3, #0x000f0000 @ CPU ID supported? |