From ecba686e80a5d038b46066061626d0a7ff983b0f Mon Sep 17 00:00:00 2001 From: Alexey Khoroshilov Date: Tue, 25 Sep 2012 16:56:02 +0400 Subject: [PATCH] --- yaml --- r: 325482 b: refs/heads/master c: 4c229df0b19cda41a8ea93f26497374004299fda h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/staging/sbe-2t3e3/module.c | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 7e7d63174274..e3fc79914b35 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 62fea8c8f1bf5ca33ba55b3f421d9598a68297ee +refs/heads/master: 4c229df0b19cda41a8ea93f26497374004299fda diff --git a/trunk/drivers/staging/sbe-2t3e3/module.c b/trunk/drivers/staging/sbe-2t3e3/module.c index cd778b3a02b2..8adb17816ad9 100644 --- a/trunk/drivers/staging/sbe-2t3e3/module.c +++ b/trunk/drivers/staging/sbe-2t3e3/module.c @@ -67,6 +67,7 @@ static int __devinit t3e3_init_channel(struct channel *channel, struct pci_dev * dev = alloc_hdlcdev(channel); if (!dev) { printk(KERN_ERR "SBE 2T3E3" ": Out of memory\n"); + err = -ENOMEM; goto free_regions; } @@ -82,8 +83,9 @@ static int __devinit t3e3_init_channel(struct channel *channel, struct pci_dev * else channel->h.slot = 0; - if (setup_device(dev, channel)) - goto free_regions; + err = setup_device(dev, channel); + if (err) + goto free_dev; pci_read_config_dword(channel->pdev, 0x40, &val); /* mask sleep mode */ pci_write_config_dword(channel->pdev, 0x40, val & 0x3FFFFFFF); @@ -92,14 +94,19 @@ static int __devinit t3e3_init_channel(struct channel *channel, struct pci_dev * pci_read_config_dword(channel->pdev, PCI_COMMAND, &channel->h.command); t3e3_init(channel); - if (request_irq(dev->irq, &t3e3_intr, IRQF_SHARED, dev->name, dev)) { + err = request_irq(dev->irq, &t3e3_intr, IRQF_SHARED, dev->name, dev); + if (err) { printk(KERN_WARNING "%s: could not get irq: %d\n", dev->name, dev->irq); - goto free_regions; + goto unregister_dev; } pci_set_drvdata(pdev, channel); return 0; +unregister_dev: + unregister_hdlc_device(dev); +free_dev: + free_netdev(dev); free_regions: pci_release_regions(pdev); disable: