Commit 3f050447 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[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: default avatarAlan 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent a304e1b8
...@@ -328,12 +328,14 @@ int setup_irq(unsigned int irq, struct irqaction *new) ...@@ -328,12 +328,14 @@ int setup_irq(unsigned int irq, struct irqaction *new)
return 0; return 0;
mismatch: mismatch:
#ifdef CONFIG_DEBUG_SHIRQ
if (!(new->flags & IRQF_PROBE_SHARED)) { if (!(new->flags & IRQF_PROBE_SHARED)) {
printk(KERN_ERR "IRQ handler type mismatch for IRQ %d\n", irq); printk(KERN_ERR "IRQ handler type mismatch for IRQ %d\n", irq);
if (old_name) if (old_name)
printk(KERN_ERR "current handler: %s\n", old_name); printk(KERN_ERR "current handler: %s\n", old_name);
dump_stack(); dump_stack();
} }
#endif
spin_unlock_irqrestore(&desc->lock, flags); spin_unlock_irqrestore(&desc->lock, flags);
return -EBUSY; return -EBUSY;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment