浏览代码

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>
Rob Herring 11 年之前
父节点
当前提交
1dc5455f6f
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      arch/arm/kernel/head.S

+ 1 - 1
arch/arm/kernel/head.S

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