asmlinkage void smp_threshold_interrupt(void) { irq_enter(); exit_idle(); inc_irq_stat(irq_threshold_count); mce_threshold_vector(); irq_exit(); /* Ack only at the end to avoid potential reentry */ ack_APIC_irq(); }
asmlinkage void smp_threshold_interrupt(struct pt_regs *regs) { irq_enter(); msa_start_irq(THRESHOLD_APIC_VECTOR); exit_idle(); inc_irq_stat(irq_threshold_count); mce_threshold_vector(); msa_irq_exit(THRESHOLD_APIC_VECTOR, regs->cs != __KERNEL_CS); /* Ack only at the end to avoid potential reentry */ ack_APIC_irq(); }