From 7006912cfb31f2894ec7481173232c8c35610359 Mon Sep 17 00:00:00 2001 From: Kulikov Vasiliy Date: Sat, 10 Jul 2010 01:01:44 +0000 Subject: [PATCH] --- yaml --- r: 203476 b: refs/heads/master c: dbe000ed3f3033e8e6321d79023c827faf649c4d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/xtsonic.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index fbe3e8b2eede..91b79dd50af1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 546e3abde391ef01ef4690e941611654343ea0bf +refs/heads/master: dbe000ed3f3033e8e6321d79023c827faf649c4d diff --git a/trunk/drivers/net/xtsonic.c b/trunk/drivers/net/xtsonic.c index fdba9cb3a599..9f12026d98e7 100644 --- a/trunk/drivers/net/xtsonic.c +++ b/trunk/drivers/net/xtsonic.c @@ -93,12 +93,20 @@ static unsigned short known_revisions[] = static int xtsonic_open(struct net_device *dev) { - if (request_irq(dev->irq,sonic_interrupt,IRQF_DISABLED,"sonic",dev)) { + int retval; + + retval = request_irq(dev->irq, sonic_interrupt, IRQF_DISABLED, + "sonic", dev); + if (retval) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq); return -EAGAIN; } - return sonic_open(dev); + + retval = sonic_open(dev); + if (retval) + free_irq(dev->irq, dev); + return retval; } static int xtsonic_close(struct net_device *dev)