в программе использую обработку прерывания на основе
https://developer.ridgerun.com/wiki/index.php/Gpio-int-test.c
прерывания идут с частотой 50 герц. спустя некоторое время в отладочный компорт вываливается несколько одинаковых сообщений вида:
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
Bad IRQ4092589311
в программе других прерываний вроде нет. только SMC шина и сигналы-слоты из других потоков.
в чем может быть причина?
я так понял выполняется следующее:
65 void handle_IRQ(unsigned int irq, struct pt_regs *regs)
66 {
67 struct pt_regs *old_regs = set_irq_regs(regs);
68
69 irq_enter();
70
71 /*
72 * Some hardware gives randomly wrong interrupts. Rather
73 * than crashing, do something sensible.
74 */
75 if (unlikely
(irq >= nr_irqs)) {
76 if (printk_ratelimit())
77 printk(KERN_WARNING "Bad IRQ%u\n", irq);
78 ack_bad_irq(irq);
79 } else {
80 generic_handle_irq(irq);
81 }
82
83 irq_exit();
84 set_irq_regs(old_regs);
85 }