small apic timer cleanup
PATCH 1/1 small apic timer cleanup
This small patch removes the special case macro for the apic timer entry stub, as it unnecessary to pass in the pointer to the pt_regs struct. Tested on a UP Athlon XP.
Signature · 1 line
Brian Gerst
arch/i386/kernel/apic.c +2 -2
@@ -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))
arch/i386/kernel/i8259.c +1 -1
@@ -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
include/asm-i386/hw_irq.h +0 -16
@@ -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__( \