Commit b2a0e119 authored by Vivek Goyal's avatar Vivek Goyal Committed by Linus Torvalds

[PATCH] Secondary cpus boot-up for non default location built kernels

This patch fixes the problem of secondary cpus not coming up over a reboot.
 This problem was seen when a kernel compiled for non default (16MB)
location is booted.
Signed-off-by: default avatarVivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8f9cef15
......@@ -51,8 +51,14 @@ r_base = .
movl $0xA5A5A5A5, trampoline_data - r_base
# write marker for master knows we're running
lidt boot_idt - r_base # load idt with 0, 0
lgdt boot_gdt - r_base # load gdt with whatever is appropriate
/* GDT tables in non default location kernel can be beyond 16MB and
* lgdt will not be able to load the address as in real mode default
* operand size is 16bit. Use lgdtl instead to force operand size
* to 32 bit.
*/
lidtl boot_idt - r_base # load idt with 0, 0
lgdtl boot_gdt - r_base # load gdt with whatever is appropriate
xor %ax, %ax
inc %ax # protected mode (PE) bit
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment