提交 bec1b819 编写于 作者: R Russell King 提交者: Russell King

[ARM] Quieten spurious IRQ detection

Only issue a "nobody cared" warning after 99900 spurious interrupts.
This avoids the occasional spurious interrupt causing warnings, as
per x86.
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 58e9ff56
...@@ -305,14 +305,19 @@ report_bad_irq(unsigned int irq, struct pt_regs *regs, struct irqdesc *desc, int ...@@ -305,14 +305,19 @@ report_bad_irq(unsigned int irq, struct pt_regs *regs, struct irqdesc *desc, int
static int count = 100; static int count = 100;
struct irqaction *action; struct irqaction *action;
if (!count || noirqdebug) if (noirqdebug)
return; return;
count--;
if (ret != IRQ_HANDLED && ret != IRQ_NONE) { if (ret != IRQ_HANDLED && ret != IRQ_NONE) {
if (!count)
return;
count--;
printk("irq%u: bogus retval mask %x\n", irq, ret); printk("irq%u: bogus retval mask %x\n", irq, ret);
} else { } else {
desc->irqs_unhandled++;
if (desc->irqs_unhandled <= 99900)
return;
desc->irqs_unhandled = 0;
printk("irq%u: nobody cared\n", irq); printk("irq%u: nobody cared\n", irq);
} }
show_regs(regs); show_regs(regs);
......
...@@ -74,6 +74,7 @@ struct irqdesc { ...@@ -74,6 +74,7 @@ struct irqdesc {
unsigned int noautoenable : 1; /* don't automatically enable IRQ */ unsigned int noautoenable : 1; /* don't automatically enable IRQ */
unsigned int unused :25; unsigned int unused :25;
unsigned int irqs_unhandled;
struct proc_dir_entry *procdir; struct proc_dir_entry *procdir;
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册