[PATCH] kernel: shut up the IRQ mismatch messages
The problem is various drivers legally validly and sensibly try to claim IRQs but the kernel insists on vomiting forth a giant irrelevant debugging spew when the types clash. Edit kernel/irq/manage.c go down to mismatch: in setup_irq() and ifdef out the if clause that checks for mismatches. It'll then just do the right thing and work sanely. For the current -mm kernel this will do the trick (and moves it into shared irq debugging as in debug mode the info spew is useful). I've had a variant of this in my private tree for some time as I got fed up on the mess on boxes where old legacy IRQs get reused. Signed-off-by: Alan Cox <alan@redhat.com> Cc: Arjan van de Ven <arjan@infradead.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
a304e1b828
commit
3f05044715
1 changed files with 2 additions and 0 deletions
|
@ -328,12 +328,14 @@ int setup_irq(unsigned int irq, struct irqaction *new)
|
|||
return 0;
|
||||
|
||||
mismatch:
|
||||
#ifdef CONFIG_DEBUG_SHIRQ
|
||||
if (!(new->flags & IRQF_PROBE_SHARED)) {
|
||||
printk(KERN_ERR "IRQ handler type mismatch for IRQ %d\n", irq);
|
||||
if (old_name)
|
||||
printk(KERN_ERR "current handler: %s\n", old_name);
|
||||
dump_stack();
|
||||
}
|
||||
#endif
|
||||
spin_unlock_irqrestore(&desc->lock, flags);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue