[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: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
58e9ff5638
commit
bec1b81936
2 changed files with 9 additions and 3 deletions
|
@ -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 {
|
||||||
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
|
||||||
|
|
Loading…
Add table
Reference in a new issue