From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 22 Dec 2006 09:08:14 +0000 (-0800)
Subject: [PATCH] genirq: fix irq flow handler uninstall
X-Git-Tag: firefly_0821_release~31783
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=9d7ac8be4b48737ad1cebd94ed754a269f360708;p=firefly-linux-kernel-4.4.55.git

[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>
---

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,
 
 	if (!handle)
 		handle = handle_bad_irq;
-
-	if (desc->chip == &no_irq_chip) {
+	else if (desc->chip == &no_irq_chip) {
 		printk(KERN_WARNING "Trying to install %sinterrupt handler "
 		       "for IRQ%d\n", is_chained ? "chained " : "", irq);
 		/*