err = nitrox_device_flr(pdev);
        if (err) {
                dev_err(&pdev->dev, "FLR failed\n");
-               pci_disable_device(pdev);
-               return err;
+               goto flr_fail;
        }
 
        if (!dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64))) {
                err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
                if (err) {
                        dev_err(&pdev->dev, "DMA configuration failed\n");
-                       pci_disable_device(pdev);
-                       return err;
+                       goto flr_fail;
                }
        }
 
        err = pci_request_mem_regions(pdev, nitrox_driver_name);
-       if (err) {
-               pci_disable_device(pdev);
-               dev_err(&pdev->dev, "Failed to request mem regions!\n");
-               return err;
-       }
+       if (err)
+               goto flr_fail;
        pci_set_master(pdev);
 
        ndev = kzalloc(sizeof(*ndev), GFP_KERNEL);
 
        err = nitrox_pf_sw_init(ndev);
        if (err)
-               goto ioremap_err;
+               goto pf_sw_fail;
 
        err = nitrox_pf_hw_init(ndev);
        if (err)
        smp_mb__after_atomic();
 pf_hw_fail:
        nitrox_pf_sw_cleanup(ndev);
+pf_sw_fail:
+       iounmap(ndev->bar_addr);
 ioremap_err:
        nitrox_remove_from_devlist(ndev);
        kfree(ndev);
        pci_set_drvdata(pdev, NULL);
 ndev_fail:
        pci_release_mem_regions(pdev);
+flr_fail:
        pci_disable_device(pdev);
        return err;
 }