threshold.c 641 B

1234567891011121314151617181920212223242526272829
  1. /*
  2. * Common corrected MCE threshold handler code:
  3. */
  4. #include <linux/interrupt.h>
  5. #include <linux/kernel.h>
  6. #include <asm/irq_vectors.h>
  7. #include <asm/apic.h>
  8. #include <asm/idle.h>
  9. #include <asm/mce.h>
  10. static void default_threshold_interrupt(void)
  11. {
  12. printk(KERN_ERR "Unexpected threshold interrupt at vector %x\n",
  13. THRESHOLD_APIC_VECTOR);
  14. }
  15. void (*mce_threshold_vector)(void) = default_threshold_interrupt;
  16. asmlinkage void mce_threshold_interrupt(void)
  17. {
  18. exit_idle();
  19. irq_enter();
  20. inc_irq_stat(irq_threshold_count);
  21. mce_threshold_vector();
  22. irq_exit();
  23. /* Ack only at the end to avoid potential reentry */
  24. ack_APIC_irq();
  25. }