[PATCH] arch/unicore32/kernel/dma.c: eliminated unneeded free_irq

Julia Lawall
2012-03-15T08:01:38Z

From: Julia Lawall <Julia.Lawall@lip6.fr>

The device remains functional if the second request_irq fails, so the first
one should not be freed.

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>

---
diff --git a/arch/unicore32/kernel/dma.c b/arch/unicore32/kernel/dma.c
index ae441bc..6184ff2 100644
--- a/arch/unicore32/kernel/dma.c
+++ b/arch/unicore32/kernel/dma.c
@@ -172,8 +172,9 @@ int __init puv3_init_dma(void)

ret = request_irq(IRQ_DMAERR, dma_err_handler, 0, "DMAERR", NULL);
if (ret) {
+ /* the device remains function if this fails, so don't free
+ the previously allocated irq */
printk(KERN_CRIT "Can't register IRQ for DMAERR\n");
- free_irq(IRQ_DMA, "DMA");
return ret;
}