diff -urN linux-2.5.3-pre3/arch/i386/kernel/apic.c linux/arch/i386/kernel/apic.c --- linux-2.5.3-pre3/arch/i386/kernel/apic.c Mon Jan 14 21:57:05 2002 +++ linux/arch/i386/kernel/apic.c Wed Jan 23 10:12:36 2002 @@ -1014,7 +1014,7 @@ */ unsigned int apic_timer_irqs [NR_CPUS]; -void smp_apic_timer_interrupt(struct pt_regs * regs) +void smp_apic_timer_interrupt(struct pt_regs regs) { int cpu = smp_processor_id(); @@ -1034,7 +1034,7 @@ * interrupt lock, which is the WrongThing (tm) to do. */ irq_enter(cpu, 0); - smp_local_timer_interrupt(regs); + smp_local_timer_interrupt(®s); irq_exit(cpu, 0); if (softirq_pending(cpu)) diff -urN linux-2.5.3-pre3/arch/i386/kernel/i8259.c linux/arch/i386/kernel/i8259.c --- linux-2.5.3-pre3/arch/i386/kernel/i8259.c Tue Jan 22 00:31:00 2002 +++ linux/arch/i386/kernel/i8259.c Wed Jan 23 10:12:53 2002 @@ -93,7 +93,7 @@ * a much simpler SMP time architecture: */ #ifdef CONFIG_X86_LOCAL_APIC -BUILD_SMP_TIMER_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR) +BUILD_SMP_INTERRUPT(apic_timer_interrupt,LOCAL_TIMER_VECTOR) BUILD_SMP_INTERRUPT(error_interrupt,ERROR_APIC_VECTOR) BUILD_SMP_INTERRUPT(spurious_interrupt,SPURIOUS_APIC_VECTOR) #endif diff -urN linux-2.5.3-pre3/include/asm-i386/hw_irq.h linux/include/asm-i386/hw_irq.h --- linux-2.5.3-pre3/include/asm-i386/hw_irq.h Tue Jan 22 00:31:04 2002 +++ linux/include/asm-i386/hw_irq.h Wed Jan 23 10:13:24 2002 @@ -137,22 +137,6 @@ "call "SYMBOL_NAME_STR(smp_##x)"\n\t" \ "jmp ret_from_intr\n"); -#define BUILD_SMP_TIMER_INTERRUPT(x,v) XBUILD_SMP_TIMER_INTERRUPT(x,v) -#define XBUILD_SMP_TIMER_INTERRUPT(x,v) \ -asmlinkage void x(struct pt_regs * regs); \ -asmlinkage void call_##x(void); \ -__asm__( \ -"\n"__ALIGN_STR"\n" \ -SYMBOL_NAME_STR(x) ":\n\t" \ - "pushl $"#v"-256\n\t" \ - SAVE_ALL \ - "movl %esp,%eax\n\t" \ - "pushl %eax\n\t" \ - SYMBOL_NAME_STR(call_##x)":\n\t" \ - "call "SYMBOL_NAME_STR(smp_##x)"\n\t" \ - "addl $4,%esp\n\t" \ - "jmp ret_from_intr\n"); - #define BUILD_COMMON_IRQ() \ asmlinkage void call_do_IRQ(void); \ __asm__( \