if (err) {
printk(KERN_INFO "ns83820: unable to register irq %d\n",
pci_dev->irq);
- goto out_unmap;
+ goto out_disable;
}
err = register_netdev(&dev->net_dev);
if (err) {
printk(KERN_INFO "ns83820: unable to register netdev: %d\n", err);
- goto out_unmap;
+ goto out_free_irq;
}
printk("%s: ns83820.c: 0x22c: %08x, subsystem: %04x:%04x\n",
return 0;
-out_unmap:
- iounmap(dev->base);
+out_free_irq:
+ free_irq(pci_dev->irq, dev);
out_disable:
+ if (dev->base)
+ iounmap(dev->base);
pci_free_consistent(pci_dev, 4 * DESC_SIZE * NR_TX_DESC, dev->tx_descs, dev->tx_phy_descs);
pci_free_consistent(pci_dev, 4 * DESC_SIZE * NR_RX_DESC, dev->rx_info.descs, dev->rx_info.phy_descs);
pci_disable_device(pci_dev);