ibmebus_free_irq() frees the IRQ but does not remove its mapping which
results in stale entries in the map.

  Fix this by adding a call to irq_dispose_mapping() in ibmebus_free_irq().

Signed-off-by: Sebastien Dugue <[EMAIL PROTECTED]>
Cc: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
Cc: Paul Mackerras <[EMAIL PROTECTED]>
---
 arch/powerpc/kernel/ibmebus.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index 64299d2..7c65377 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -231,6 +231,7 @@ void ibmebus_free_irq(u32 ist, void *dev_id)
        unsigned int irq = irq_find_mapping(NULL, ist);
 
        free_irq(irq, dev_id);
+       irq_dispose_mapping(irq);
 }
 EXPORT_SYMBOL(ibmebus_free_irq);
 
-- 
1.6.0.1.308.gede4c

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to