aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64
diff options
context:
space:
mode:
authorYinghai Lu <yinghai.lu@amd.com>2006-12-07 02:14:12 +0100
committerAndi Kleen <andi@basil.nowhere.org>2006-12-07 02:14:12 +0100
commit3df0af0eb064a16bbdbe81b46bc72a4089f88d54 (patch)
treec1232506749762eb34c3d12cb3e0da1a48398ba6 /arch/x86_64
parent0741f4d207a644482d7a040f05cd264c98cf7ee8 (diff)
downloadlinux-linaro-stable-3df0af0eb064a16bbdbe81b46bc72a4089f88d54.tar.gz
[PATCH] x86_64: clear_bss before set_intr_gate with early_idt_handler
idt_table is in the .bss section, so clear_bss need to called at first Signed-off-by: Yinghai Lu <yinghai.lu@amd.com> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/x86_64')
-rw-r--r--arch/x86_64/kernel/head64.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86_64/kernel/head64.c b/arch/x86_64/kernel/head64.c
index 9561eb3c5b5c..cc230b93cd1c 100644
--- a/arch/x86_64/kernel/head64.c
+++ b/arch/x86_64/kernel/head64.c
@@ -57,10 +57,12 @@ void __init x86_64_start_kernel(char * real_mode_data)
{
int i;
- for (i = 0; i < 256; i++)
+ /* clear bss before set_intr_gate with early_idt_handler */
+ clear_bss();
+
+ for (i = 0; i < IDT_ENTRIES; i++)
set_intr_gate(i, early_idt_handler);
asm volatile("lidt %0" :: "m" (idt_descr));
- clear_bss();
early_printk("Kernel alive\n");