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