[Intel-xe] [PATCH 1/2] drm/xe: Call drmm_add_action_or_reset() early in xe_device_create()
Gustavo Sousa
gustavo.sousa at intel.com
Thu May 18 21:56:50 UTC 2023
Otherwise no cleanup is actually done if we branch to err_put.
This works for now: currently we do know that, once inside
xe_device_destroy(), ttm_device_init() was successful so we can safely
call ttm_device_fini(); and, for xe->ordered_wq, there is an upcoming
commit to check its value before calling destroy_workqueue().
However, we might need change this in the future if we have more
initializers called that can fail in a way that we can not know which
one was it once inside xe_device_destroy().
Signed-off-by: Gustavo Sousa <gustavo.sousa at intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index f7f6a6a97757..4614bb791fb0 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -187,6 +187,10 @@ struct xe_device *xe_device_create(struct pci_dev *pdev,
if (WARN_ON(err))
goto err_put;
+ err = drmm_add_action_or_reset(&xe->drm, xe_device_destroy, NULL);
+ if (err)
+ goto err_put;
+
xe->info.devid = pdev->device;
xe->info.revid = pdev->revision;
xe->info.enable_guc = enable_guc;
@@ -212,10 +216,6 @@ struct xe_device *xe_device_create(struct pci_dev *pdev,
if (WARN_ON(err))
goto err_put;
- err = drmm_add_action_or_reset(&xe->drm, xe_device_destroy, NULL);
- if (err)
- goto err_put;
-
return xe;
err_put:
--
2.40.1
More information about the Intel-xe
mailing list