Loading arch/x86/kernel/apic_32.c +21 −3 Original line number Diff line number Diff line Loading @@ -1474,10 +1474,17 @@ int __init APIC_init_uniprocessor(void) /* * This interrupt should _never_ happen with our APIC/SMP architecture */ #ifdef CONFIG_X86_64 asmlinkage void smp_spurious_interrupt(void) #else void smp_spurious_interrupt(struct pt_regs *regs) #endif { unsigned long v; u32 v; #ifdef CONFIG_X86_64 exit_idle(); #endif irq_enter(); /* * Check if this really is a spurious interrupt and ACK it Loading @@ -1488,20 +1495,31 @@ void smp_spurious_interrupt(struct pt_regs *regs) if (v & (1 << (SPURIOUS_APIC_VECTOR & 0x1f))) ack_APIC_irq(); #ifdef CONFIG_X86_64 add_pda(irq_spurious_count, 1); #else /* see sw-dev-man vol 3, chapter 7.4.13.5 */ printk(KERN_INFO "spurious APIC interrupt on CPU#%d, " "should never happen.\n", smp_processor_id()); __get_cpu_var(irq_stat).irq_spurious_count++; #endif irq_exit(); } /* * This interrupt should never happen with our APIC/SMP architecture */ #ifdef CONFIG_X86_64 asmlinkage void smp_error_interrupt(void) #else void smp_error_interrupt(struct pt_regs *regs) #endif { unsigned long v, v1; u32 v, v1; #ifdef CONFIG_X86_64 exit_idle(); #endif irq_enter(); /* First tickle the hardware, only then report what went on. -- REW */ v = apic_read(APIC_ESR); Loading @@ -1520,7 +1538,7 @@ void smp_error_interrupt(struct pt_regs *regs) 6: Received illegal vector 7: Illegal register address */ printk(KERN_DEBUG "APIC error on CPU%d: %02lx(%02lx)\n", printk(KERN_DEBUG "APIC error on CPU%d: %02x(%02x)\n", smp_processor_id(), v , v1); irq_exit(); } Loading arch/x86/kernel/apic_64.c +22 −2 Original line number Diff line number Diff line Loading @@ -1528,10 +1528,17 @@ int __init APIC_init_uniprocessor(void) /* * This interrupt should _never_ happen with our APIC/SMP architecture */ #ifdef CONFIG_X86_64 asmlinkage void smp_spurious_interrupt(void) #else void smp_spurious_interrupt(struct pt_regs *regs) #endif { unsigned int v; u32 v; #ifdef CONFIG_X86_64 exit_idle(); #endif irq_enter(); /* * Check if this really is a spurious interrupt and ACK it Loading @@ -1542,18 +1549,31 @@ asmlinkage void smp_spurious_interrupt(void) if (v & (1 << (SPURIOUS_APIC_VECTOR & 0x1f))) ack_APIC_irq(); #ifdef CONFIG_X86_64 add_pda(irq_spurious_count, 1); #else /* see sw-dev-man vol 3, chapter 7.4.13.5 */ printk(KERN_INFO "spurious APIC interrupt on CPU#%d, " "should never happen.\n", smp_processor_id()); __get_cpu_var(irq_stat).irq_spurious_count++; #endif irq_exit(); } /* * This interrupt should never happen with our APIC/SMP architecture */ #ifdef CONFIG_X86_64 asmlinkage void smp_error_interrupt(void) #else void smp_error_interrupt(struct pt_regs *regs) #endif { unsigned int v, v1; u32 v, v1; #ifdef CONFIG_X86_64 exit_idle(); #endif irq_enter(); /* First tickle the hardware, only then report what went on. -- REW */ v = apic_read(APIC_ESR); Loading Loading
arch/x86/kernel/apic_32.c +21 −3 Original line number Diff line number Diff line Loading @@ -1474,10 +1474,17 @@ int __init APIC_init_uniprocessor(void) /* * This interrupt should _never_ happen with our APIC/SMP architecture */ #ifdef CONFIG_X86_64 asmlinkage void smp_spurious_interrupt(void) #else void smp_spurious_interrupt(struct pt_regs *regs) #endif { unsigned long v; u32 v; #ifdef CONFIG_X86_64 exit_idle(); #endif irq_enter(); /* * Check if this really is a spurious interrupt and ACK it Loading @@ -1488,20 +1495,31 @@ void smp_spurious_interrupt(struct pt_regs *regs) if (v & (1 << (SPURIOUS_APIC_VECTOR & 0x1f))) ack_APIC_irq(); #ifdef CONFIG_X86_64 add_pda(irq_spurious_count, 1); #else /* see sw-dev-man vol 3, chapter 7.4.13.5 */ printk(KERN_INFO "spurious APIC interrupt on CPU#%d, " "should never happen.\n", smp_processor_id()); __get_cpu_var(irq_stat).irq_spurious_count++; #endif irq_exit(); } /* * This interrupt should never happen with our APIC/SMP architecture */ #ifdef CONFIG_X86_64 asmlinkage void smp_error_interrupt(void) #else void smp_error_interrupt(struct pt_regs *regs) #endif { unsigned long v, v1; u32 v, v1; #ifdef CONFIG_X86_64 exit_idle(); #endif irq_enter(); /* First tickle the hardware, only then report what went on. -- REW */ v = apic_read(APIC_ESR); Loading @@ -1520,7 +1538,7 @@ void smp_error_interrupt(struct pt_regs *regs) 6: Received illegal vector 7: Illegal register address */ printk(KERN_DEBUG "APIC error on CPU%d: %02lx(%02lx)\n", printk(KERN_DEBUG "APIC error on CPU%d: %02x(%02x)\n", smp_processor_id(), v , v1); irq_exit(); } Loading
arch/x86/kernel/apic_64.c +22 −2 Original line number Diff line number Diff line Loading @@ -1528,10 +1528,17 @@ int __init APIC_init_uniprocessor(void) /* * This interrupt should _never_ happen with our APIC/SMP architecture */ #ifdef CONFIG_X86_64 asmlinkage void smp_spurious_interrupt(void) #else void smp_spurious_interrupt(struct pt_regs *regs) #endif { unsigned int v; u32 v; #ifdef CONFIG_X86_64 exit_idle(); #endif irq_enter(); /* * Check if this really is a spurious interrupt and ACK it Loading @@ -1542,18 +1549,31 @@ asmlinkage void smp_spurious_interrupt(void) if (v & (1 << (SPURIOUS_APIC_VECTOR & 0x1f))) ack_APIC_irq(); #ifdef CONFIG_X86_64 add_pda(irq_spurious_count, 1); #else /* see sw-dev-man vol 3, chapter 7.4.13.5 */ printk(KERN_INFO "spurious APIC interrupt on CPU#%d, " "should never happen.\n", smp_processor_id()); __get_cpu_var(irq_stat).irq_spurious_count++; #endif irq_exit(); } /* * This interrupt should never happen with our APIC/SMP architecture */ #ifdef CONFIG_X86_64 asmlinkage void smp_error_interrupt(void) #else void smp_error_interrupt(struct pt_regs *regs) #endif { unsigned int v, v1; u32 v, v1; #ifdef CONFIG_X86_64 exit_idle(); #endif irq_enter(); /* First tickle the hardware, only then report what went on. -- REW */ v = apic_read(APIC_ESR); Loading