diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2006-12-22 04:08:14 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-22 11:55:48 -0500 |
commit | 9d7ac8be4b48737ad1cebd94ed754a269f360708 (patch) | |
tree | a6f57e44a3a5fa993145f9bf6a9af7dc8f481623 | |
parent | e903387f1ebe3a7ddb93cd49c38341d3632df528 (diff) |
[PATCH] genirq: fix irq flow handler uninstall
The sanity check for no_irq_chip in __set_irq_hander() is unconditional on
both install and uninstall of an handler. This triggers false warnings and
replaces no_irq_chip by dummy_irq_chip in the uninstall case.
Check only, when a real handler is installed.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Sylvain Munaut <tnt@246tNt.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | kernel/irq/chip.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 1c1b7125b8ac..d27b25855743 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
@@ -517,8 +517,7 @@ __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained, | |||
517 | 517 | ||
518 | if (!handle) | 518 | if (!handle) |
519 | handle = handle_bad_irq; | 519 | handle = handle_bad_irq; |
520 | 520 | else if (desc->chip == &no_irq_chip) { | |
521 | if (desc->chip == &no_irq_chip) { | ||
522 | printk(KERN_WARNING "Trying to install %sinterrupt handler " | 521 | printk(KERN_WARNING "Trying to install %sinterrupt handler " |
523 | "for IRQ%d\n", is_chained ? "chained " : "", irq); | 522 | "for IRQ%d\n", is_chained ? "chained " : "", irq); |
524 | /* | 523 | /* |