xe->drm.anon_inode->i_mapping,
xe->drm.vma_offset_manager, false, false);
if (WARN_ON(err))
- goto err_put;
+ goto err;
err = drmm_add_action_or_reset(&xe->drm, xe_device_destroy, NULL);
if (err)
- goto err_put;
+ goto err;
xe->info.devid = pdev->device;
xe->info.revid = pdev->revision;
if (!xe->ordered_wq || !xe->unordered_wq) {
drm_err(&xe->drm, "Failed to allocate xe workqueues\n");
err = -ENOMEM;
- goto err_put;
+ goto err;
}
err = xe_display_create(xe);
if (WARN_ON(err))
- goto err_put;
+ goto err;
return xe;
-err_put:
- drm_dev_put(&xe->drm);
-
+err:
return ERR_PTR(err);
}
pci_set_drvdata(pdev, xe);
err = pci_enable_device(pdev);
if (err)
- goto err_drm_put;
+ return err;
pci_set_master(pdev);
err_pci_disable:
pci_disable_device(pdev);
-err_drm_put:
- drm_dev_put(&xe->drm);
-
return err;
}