From 0d29a76c639900747fd33b0774764aa78c9667da Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20Winiarski?= Date: Wed, 29 Nov 2023 22:44:57 +0100 Subject: [PATCH] drm/xe: Skip calling drm_dev_put on probe error MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit DRM device used by Xe is managed, which means that final ref will be dropped on driver detach. Signed-off-by: Michał Winiarski Reviewed-by: Matthew Brost Link: https://lore.kernel.org/r/20231129214509.1174116-2-michal.winiarski@intel.com Signed-off-by: Rodrigo Vivi --- drivers/gpu/drm/xe/xe_device.c | 12 +++++------- drivers/gpu/drm/xe/xe_pci.c | 5 +---- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c index 54202623e2553..296260f142dcb 100644 --- a/drivers/gpu/drm/xe/xe_device.c +++ b/drivers/gpu/drm/xe/xe_device.c @@ -215,11 +215,11 @@ struct xe_device *xe_device_create(struct pci_dev *pdev, 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; @@ -258,18 +258,16 @@ struct xe_device *xe_device_create(struct pci_dev *pdev, 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); } diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c index 1f3b2ce7c0445..a38fea281eb00 100644 --- a/drivers/gpu/drm/xe/xe_pci.c +++ b/drivers/gpu/drm/xe/xe_pci.c @@ -706,7 +706,7 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) pci_set_drvdata(pdev, xe); err = pci_enable_device(pdev); if (err) - goto err_drm_put; + return err; pci_set_master(pdev); @@ -754,9 +754,6 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) err_pci_disable: pci_disable_device(pdev); -err_drm_put: - drm_dev_put(&xe->drm); - return err; } -- 2.30.2