diff --git a/linux-2.6-xen-sparse/arch/i386/Kconfig b/linux-2.6-xen-sparse/arch/i386/Kconfig index 88e1e1b98e..e79c712376 100644 --- a/linux-2.6-xen-sparse/arch/i386/Kconfig +++ b/linux-2.6-xen-sparse/arch/i386/Kconfig @@ -1186,6 +1186,11 @@ config X86_SYSENTER depends on !X86_NO_TSS default y +config X86_NO_IDT + bool + depends on X86_XEN + default y + config KTIME_SCALAR bool default y diff --git a/linux-2.6-xen-sparse/arch/i386/Kconfig.cpu b/linux-2.6-xen-sparse/arch/i386/Kconfig.cpu index 79603b3471..a52d7d494f 100644 --- a/linux-2.6-xen-sparse/arch/i386/Kconfig.cpu +++ b/linux-2.6-xen-sparse/arch/i386/Kconfig.cpu @@ -251,7 +251,7 @@ config X86_PPRO_FENCE config X86_F00F_BUG bool - depends on M586MMX || M586TSC || M586 || M486 || M386 + depends on (M586MMX || M586TSC || M586 || M486 || M386) && !X86_NO_IDT default y config X86_WP_WORKS_OK diff --git a/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S b/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S index e0c31a0ae0..93c5e85526 100644 --- a/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S +++ b/linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S @@ -94,19 +94,11 @@ ENTRY(stack_start) .long init_thread_union+THREAD_SIZE .long __BOOT_DS -ready: .byte 0 - -.globl idt_descr -.globl cpu_gdt_descr - ALIGN - .word 0 # 32-bit align idt_desc.address -idt_descr: - .word IDT_ENTRIES*8-1 # idt contains 256 entries - .long idt_table # boot GDT descriptor (later on used by CPU#0): .word 0 # 32 bit align gdt_desc.address + .globl cpu_gdt_descr cpu_gdt_descr: .word GDT_SIZE .long cpu_gdt_table diff --git a/linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c b/linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c index c94e7abb15..34576b17fa 100644 --- a/linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c +++ b/linux-2.6-xen-sparse/arch/i386/kernel/traps-xen.c @@ -61,12 +61,14 @@ asmlinkage int system_call(void); /* Do we ignore FPU interrupts ? */ char ignore_fpu_irq = 0; +#ifndef CONFIG_X86_NO_IDT /* * The IDT has to be page-aligned to simplify the Pentium * F0 0F bug workaround.. We have a special link segment * for this. */ struct desc_struct idt_table[256] __attribute__((__section__(".data.idt"))) = { {0, 0}, }; +#endif asmlinkage void divide_error(void); asmlinkage void debug(void);