2006-12-15 11:18:06

by Thomas Gleixner

[permalink] [raw]
Subject: [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 <[email protected]>

Index: 2.6.19-git19/kernel/irq/chip.c
===================================================================
--- 2.6.19-git19.orig/kernel/irq/chip.c
+++ 2.6.19-git19/kernel/irq/chip.c
@@ -517,8 +517,7 @@ __set_irq_handler(unsigned int irq, irq_

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);
/*



2006-12-15 20:14:14

by Sylvain Munaut

[permalink] [raw]
Subject: Re: [PATCH] genirq: fix irq flow handler uninstall

Thomas Gleixner wrote:
> 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 <[email protected]>
>
Acked-by: Sylvain Munaut <[email protected]>


Definitly fixed the spurious warning.

Sylvain