--- head-2006-02-07.orig/arch/x86_64/kernel/entry-xen.S 2006-02-07 13:29:12.000000000 +0100 +++ head-2006-02-07/arch/x86_64/kernel/entry-xen.S 2006-02-08 11:43:17.000000000 +0100 @@ -492,42 +492,10 @@ ENTRY(stub_rt_sigreturn) #define XCPT_FRAME _frame ORIG_RAX /* - * Interrupt entry/exit. + * Interrupt exit. * - * Interrupt entry points save only callee clobbered registers in fast path. - * - * Entry runs with interrupts off. */ -/* 0(%rsp): interrupt number */ - .macro interrupt func - cld -#ifdef CONFIG_DEBUG_INFO - SAVE_ALL - movq %rsp,%rdi - /* - * Setup a stack frame pointer. This allows gdb to trace - * back to the original stack. - */ - movq %rsp,%rbp - CFI_DEF_CFA_REGISTER rbp -#else - SAVE_ARGS - leaq -ARGOFFSET(%rsp),%rdi # arg1 for handler -#endif -#if 0 /* For Xen we don't need to do this */ - testl $3,CS(%rdi) - je 1f - swapgs -#endif -1: incl %gs:pda_irqcount # RED-PEN should check preempt count - movq %gs:pda_irqstackptr,%rax - cmoveq %rax,%rsp /*todo This needs CFI annotation! */ - pushq %rdi # save old stack - CFI_ADJUST_CFA_OFFSET 8 - call \func - .endm - retint_check: movl threadinfo_flags(%rcx),%edx andl %edi,%edx @@ -639,7 +597,6 @@ ENTRY(invalidate_interrupt\num) ENTRY(call_function_interrupt) apicinterrupt CALL_FUNCTION_VECTOR,smp_call_function_interrupt #endif -#endif /* !CONFIG_XEN */ #ifdef CONFIG_X86_LOCAL_APIC ENTRY(apic_timer_interrupt) @@ -651,6 +608,7 @@ ENTRY(error_interrupt) ENTRY(spurious_interrupt) apicinterrupt SPURIOUS_APIC_VECTOR,smp_spurious_interrupt #endif +#endif /* !CONFIG_XEN */ /* * Exception entry points.