diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2007-02-12 03:52:04 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-12 12:48:28 -0500 |
commit | 3f0504471536a2b6978b9a99ed1c222950fff07a (patch) | |
tree | 173f4554a2bcf2d27dbbe6aeeed562afc8bb6847 /kernel/irq/manage.c | |
parent | a304e1b82808904c561b7b149b467e338c53fcce (diff) |
[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>
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 400b12a63649..7c85d69188ef 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -328,12 +328,14 @@ int setup_irq(unsigned int irq, struct irqaction *new) | |||
328 | return 0; | 328 | return 0; |
329 | 329 | ||
330 | mismatch: | 330 | mismatch: |
331 | #ifdef CONFIG_DEBUG_SHIRQ | ||
331 | if (!(new->flags & IRQF_PROBE_SHARED)) { | 332 | if (!(new->flags & IRQF_PROBE_SHARED)) { |
332 | printk(KERN_ERR "IRQ handler type mismatch for IRQ %d\n", irq); | 333 | printk(KERN_ERR "IRQ handler type mismatch for IRQ %d\n", irq); |
333 | if (old_name) | 334 | if (old_name) |
334 | printk(KERN_ERR "current handler: %s\n", old_name); | 335 | printk(KERN_ERR "current handler: %s\n", old_name); |
335 | dump_stack(); | 336 | dump_stack(); |
336 | } | 337 | } |
338 | #endif | ||
337 | spin_unlock_irqrestore(&desc->lock, flags); | 339 | spin_unlock_irqrestore(&desc->lock, flags); |
338 | return -EBUSY; | 340 | return -EBUSY; |
339 | } | 341 | } |