提交 583323b9 编写于 作者: T Thomas Gleixner

x86: fix cpu hotplug on 32bit

commit 3e970473 ("x86: boot secondary
cpus through initial_code") causes the kernel to crash when a CPU is
brought online after the read only sections have been write
protected. The write to initial_code in do_boot_cpu() fails.

Move inital_code to .cpuinit.data section.
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
Acked-by: NH. Peter Anvin <hpa@zytor.com>
上级 8be1a6d6
...@@ -456,9 +456,6 @@ is386: movl $2,%ecx # set MP ...@@ -456,9 +456,6 @@ is386: movl $2,%ecx # set MP
1: 1:
#endif /* CONFIG_SMP */ #endif /* CONFIG_SMP */
jmp *(initial_code) jmp *(initial_code)
.align 4
ENTRY(initial_code)
.long i386_start_kernel
/* /*
* We depend on ET to be correct. This checks for 287/387. * We depend on ET to be correct. This checks for 287/387.
...@@ -601,6 +598,11 @@ ignore_int: ...@@ -601,6 +598,11 @@ ignore_int:
#endif #endif
iret iret
.section .cpuinit.data,"wa"
.align 4
ENTRY(initial_code)
.long i386_start_kernel
.section .text .section .text
/* /*
* Real beginning of normal "text" segment * Real beginning of normal "text" segment
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册