if (xe_display_driver_probe_defer(pdev))
                return -EPROBE_DEFER;
 
+       err = pcim_enable_device(pdev);
+       if (err)
+               return err;
+
        xe = xe_device_create(pdev, ent);
        if (IS_ERR(xe))
                return PTR_ERR(xe);
 
+       pci_set_drvdata(pdev, xe);
+
        xe_pm_assert_unbounded_bridge(xe);
        subplatform_desc = find_subplatform(xe, desc);
 
-       pci_set_drvdata(pdev, xe);
-       err = pci_enable_device(pdev);
-       if (err)
-               return err;
-
        pci_set_master(pdev);
 
        xe_sriov_probe_early(xe, desc->has_sriov);
 
        err = xe_info_init(xe, desc, subplatform_desc);
        if (err)
-               goto err_pci_disable;
+               return err;
 
        xe_display_probe(xe);
 
 
        err = xe_device_probe(xe);
        if (err)
-               goto err_pci_disable;
+               return err;
 
        xe_pm_init(xe);
 
        return 0;
-
-err_pci_disable:
-       pci_disable_device(pdev);
-
-       return err;
 }
 
 static void xe_pci_shutdown(struct pci_dev *pdev)