summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Mohr <andi@lisas.de>2009-06-02 20:15:12 +0400
committerKarsten Keil <keil@b1-systems.de>2009-06-11 21:04:59 +0400
commitcdae28e1a28f26c765c5882a48b9fd4a5b9ce91c (patch)
treecbe9107f6a15089d8503944bcf85937420157ac3
parent1ce1513f48e3bc4d55ee672f0e39f5063a02ab7a (diff)
downloadlinux-cdae28e1a28f26c765c5882a48b9fd4a5b9ce91c.tar.xz
mISDN: Free hfcpci IRQ if init was not successful
If we get no interrupts for after 3 resets we need to unregister the interrupt function, which is already done outside the loop. Signed-off-by: Andreas Mohr <andi@lisas.de> Signed-off-by: Karsten Keil <keil@b1-systems.de>
-rw-r--r--drivers/isdn/hardware/mISDN/hfcpci.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c
index 776afc8c9270..228ffbed1286 100644
--- a/drivers/isdn/hardware/mISDN/hfcpci.c
+++ b/drivers/isdn/hardware/mISDN/hfcpci.c
@@ -1806,10 +1806,9 @@ init_card(struct hfc_pci *hc)
printk(KERN_WARNING
"HFC PCI: IRQ(%d) getting no interrupts "
"during init %d\n", hc->irq, 4 - cnt);
- if (cnt == 1) {
- spin_unlock_irqrestore(&hc->lock, flags);
- return -EIO;
- } else {
+ if (cnt == 1)
+ break;
+ else {
reset_hfcpci(hc);
cnt--;
}