err = register_netdev(ndev);
        if (err) {
                dev_err(&pdev->dev, "net device registration failed.\n");
-               qlge_release_all(pdev);
-               pci_disable_device(pdev);
-               goto netdev_free;
+               goto cleanup_pdev;
        }
 
        err = qlge_health_create_reporters(qdev);
        if (err)
-               goto netdev_free;
+               goto unregister_netdev;
 
        /* Start up the timer to trigger EEH if
         * the bus goes dead
        devlink_register(devlink);
        return 0;
 
+unregister_netdev:
+       unregister_netdev(ndev);
+cleanup_pdev:
+       qlge_release_all(pdev);
+       pci_disable_device(pdev);
 netdev_free:
        free_netdev(ndev);
 devlink_free: