unsigned int i;
        int err;
 
+       err = enic_request_intr(enic);
+       if (err) {
+               printk(KERN_ERR PFX "%s: Unable to request irq.\n",
+                       netdev->name);
+               return err;
+       }
+
+       err = enic_notify_set(enic);
+       if (err) {
+               printk(KERN_ERR PFX
+                       "%s: Failed to alloc notify buffer, aborting.\n",
+                       netdev->name);
+               goto err_out_free_intr;
+       }
+
        for (i = 0; i < enic->rq_count; i++) {
                err = vnic_rq_fill(&enic->rq[i], enic_rq_alloc_buf);
                if (err) {
                        printk(KERN_ERR PFX
                                "%s: Unable to alloc receive buffers.\n",
                                netdev->name);
-                       return err;
+                       goto err_out_notify_unset;
                }
        }
 
        enic_notify_timer_start(enic);
 
        return 0;
+
+err_out_notify_unset:
+       vnic_dev_notify_unset(enic->vdev);
+err_out_free_intr:
+       enic_free_intr(enic);
+
+       return err;
 }
 
 /* rtnl lock is held, process context */
                        return err;
        }
 
+       vnic_dev_notify_unset(enic->vdev);
+       enic_free_intr(enic);
+
        (void)vnic_cq_service(&enic->cq[ENIC_CQ_RQ],
                -1, enic_rq_service_drop, NULL);
        (void)vnic_cq_service(&enic->cq[ENIC_CQ_WQ],
                return -ENOMEM;
        }
 
-       /* Set the netdev name early so intr vectors are properly
-        * named and any error msgs can include netdev->name
-        */
-
-       rtnl_lock();
-       err = dev_alloc_name(netdev, netdev->name);
-       rtnl_unlock();
-       if (err < 0) {
-               printk(KERN_ERR PFX "Unable to allocate netdev name.\n");
-               goto err_out_free_netdev;
-       }
-
        pci_set_drvdata(pdev, netdev);
 
        SET_NETDEV_DEV(netdev, &pdev->dev);
        err = pci_enable_device(pdev);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: Cannot enable PCI device, aborting.\n",
-                       netdev->name);
+                       "Cannot enable PCI device, aborting.\n");
                goto err_out_free_netdev;
        }
 
        err = pci_request_regions(pdev, DRV_NAME);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: Cannot request PCI regions, aborting.\n",
-                       netdev->name);
+                       "Cannot request PCI regions, aborting.\n");
                goto err_out_disable_device;
        }
 
                err = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
                if (err) {
                        printk(KERN_ERR PFX
-                               "%s: No usable DMA configuration, aborting.\n",
-                               netdev->name);
+                               "No usable DMA configuration, aborting.\n");
                        goto err_out_release_regions;
                }
                err = pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK);
                if (err) {
                        printk(KERN_ERR PFX
-                               "%s: Unable to obtain 32-bit DMA "
-                               "for consistent allocations, aborting.\n",
-                               netdev->name);
+                               "Unable to obtain 32-bit DMA "
+                               "for consistent allocations, aborting.\n");
                        goto err_out_release_regions;
                }
        } else {
                err = pci_set_consistent_dma_mask(pdev, DMA_40BIT_MASK);
                if (err) {
                        printk(KERN_ERR PFX
-                               "%s: Unable to obtain 40-bit DMA "
-                               "for consistent allocations, aborting.\n",
-                               netdev->name);
+                               "Unable to obtain 40-bit DMA "
+                               "for consistent allocations, aborting.\n");
                        goto err_out_release_regions;
                }
                using_dac = 1;
 
        if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) {
                printk(KERN_ERR PFX
-                       "%s: BAR0 not memory-map'able, aborting.\n",
-                       netdev->name);
+                       "BAR0 not memory-map'able, aborting.\n");
                err = -ENODEV;
                goto err_out_release_regions;
        }
 
        if (!enic->bar0.vaddr) {
                printk(KERN_ERR PFX
-                       "%s: Cannot memory-map BAR0 res hdr, aborting.\n",
-                       netdev->name);
+                       "Cannot memory-map BAR0 res hdr, aborting.\n");
                err = -ENODEV;
                goto err_out_release_regions;
        }
        enic->vdev = vnic_dev_register(NULL, enic, pdev, &enic->bar0);
        if (!enic->vdev) {
                printk(KERN_ERR PFX
-                       "%s: vNIC registration failed, aborting.\n",
-                       netdev->name);
+                       "vNIC registration failed, aborting.\n");
                err = -ENODEV;
                goto err_out_iounmap;
        }
        err = enic_dev_open(enic);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: vNIC dev open failed, aborting.\n",
-                       netdev->name);
+                       "vNIC dev open failed, aborting.\n");
                goto err_out_vnic_unregister;
        }
 
        err = vnic_dev_init(enic->vdev, 0);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: vNIC dev init failed, aborting.\n",
-                       netdev->name);
+                       "vNIC dev init failed, aborting.\n");
                goto err_out_dev_close;
        }
 
        err = enic_get_vnic_config(enic);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: Get vNIC configuration failed, aborting.\n",
-                       netdev->name);
+                       "Get vNIC configuration failed, aborting.\n");
                goto err_out_dev_close;
        }
 
        err = enic_set_intr_mode(enic);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: Failed to set intr mode, aborting.\n",
-                       netdev->name);
-               goto err_out_dev_close;
-       }
-
-       /* Request interrupt vector(s)
-       */
-
-       err = enic_request_intr(enic);
-       if (err) {
-               printk(KERN_ERR PFX "%s: Unable to request irq.\n",
-                       netdev->name);
+                       "Failed to set intr mode, aborting.\n");
                goto err_out_dev_close;
        }
 
        err = enic_alloc_vnic_resources(enic);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: Failed to alloc vNIC resources, aborting.\n",
-                       netdev->name);
+                       "Failed to alloc vNIC resources, aborting.\n");
                goto err_out_free_vnic_resources;
        }
 
                ig_vlan_strip_en);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: Failed to config nic, aborting.\n",
-                       netdev->name);
-               goto err_out_free_vnic_resources;
-       }
-
-       /* Setup notification buffer area
-        */
-
-       err = enic_notify_set(enic);
-       if (err) {
-               printk(KERN_ERR PFX
-                       "%s: Failed to alloc notify buffer, aborting.\n",
-                       netdev->name);
+                       "Failed to config nic, aborting.\n");
                goto err_out_free_vnic_resources;
        }
 
        err = enic_set_mac_addr(netdev, enic->mac_addr);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: Invalid MAC address, aborting.\n",
-                       netdev->name);
-               goto err_out_notify_unset;
+                       "Invalid MAC address, aborting.\n");
+               goto err_out_free_vnic_resources;
        }
 
        netdev->open = enic_open;
        err = register_netdev(netdev);
        if (err) {
                printk(KERN_ERR PFX
-                       "%s: Cannot register net device, aborting.\n",
-                       netdev->name);
-               goto err_out_notify_unset;
+                       "Cannot register net device, aborting.\n");
+               goto err_out_free_vnic_resources;
        }
 
        return 0;
 
-err_out_notify_unset:
-       vnic_dev_notify_unset(enic->vdev);
 err_out_free_vnic_resources:
        enic_free_vnic_resources(enic);
-       enic_free_intr(enic);
 err_out_dev_close:
        vnic_dev_close(enic->vdev);
 err_out_vnic_unregister:
 
                flush_scheduled_work();
                unregister_netdev(netdev);
-               vnic_dev_notify_unset(enic->vdev);
                enic_free_vnic_resources(enic);
-               enic_free_intr(enic);
                vnic_dev_close(enic->vdev);
                enic_clear_intr_mode(enic);
                vnic_dev_unregister(enic->vdev);