|
@@ -876,8 +876,8 @@ void __irq_entry smp_apic_timer_interrupt(struct pt_regs *regs)
|
|
|
* Besides, if we don't timer interrupts ignore the global
|
|
|
* interrupt lock, which is the WrongThing (tm) to do.
|
|
|
*/
|
|
|
- exit_idle();
|
|
|
irq_enter();
|
|
|
+ exit_idle();
|
|
|
local_apic_timer_interrupt();
|
|
|
irq_exit();
|
|
|
|
|
@@ -1809,8 +1809,8 @@ void smp_spurious_interrupt(struct pt_regs *regs)
|
|
|
{
|
|
|
u32 v;
|
|
|
|
|
|
- exit_idle();
|
|
|
irq_enter();
|
|
|
+ exit_idle();
|
|
|
/*
|
|
|
* Check if this really is a spurious interrupt and ACK it
|
|
|
* if it is a vectored one. Just in case...
|
|
@@ -1846,8 +1846,8 @@ void smp_error_interrupt(struct pt_regs *regs)
|
|
|
"Illegal register address", /* APIC Error Bit 7 */
|
|
|
};
|
|
|
|
|
|
- exit_idle();
|
|
|
irq_enter();
|
|
|
+ exit_idle();
|
|
|
/* First tickle the hardware, only then report what went on. -- REW */
|
|
|
v0 = apic_read(APIC_ESR);
|
|
|
apic_write(APIC_ESR, 0);
|