x86: fix cpu hotplug on 32bit
commit 3e9704739d
("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: Thomas Gleixner <tglx@linutronix.de>
Acked-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
8be1a6d6c7
commit
583323b9d2
1 changed files with 5 additions and 3 deletions
|
@ -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:
|
||||||
#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
|
||||||
|
|
Loading…
Add table
Reference in a new issue