Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c950af50 authored by Sagar Arun Kamble's avatar Sagar Arun Kamble Committed by Rodrigo Vivi
Browse files

drm/i915/guc: Add uc_fini_wq in gem_init unwind path



While moving code around for solving lockdep issue for GuC log relay,
spotted that uc_fini_wq is not being called in failure path in gem_init.
Missed in the below commit. Add it.

v2: Removed GEM_BUG_ON(!HAS_GUC()) from intel_uc_fini_wq as init happens
only based on enable_guc module parameter and does not consider has_guc
capability. (Michal)

Signed-off-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
Fixes: 3176ff49 ("drm/i915/guc: Move GuC workqueue allocations outside of the mutex")
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarMichał Winiarski <michal.winiarski@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1515588857-10283-1-git-send-email-sagar.a.kamble@intel.com


Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
(cherry picked from commit da943b5a)
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 63899020
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -5283,6 +5283,8 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
	intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
	mutex_unlock(&dev_priv->drm.struct_mutex);
	mutex_unlock(&dev_priv->drm.struct_mutex);


	intel_uc_fini_wq(dev_priv);

	if (ret != -EIO)
	if (ret != -EIO)
		i915_gem_cleanup_userptr(dev_priv);
		i915_gem_cleanup_userptr(dev_priv);


+0 −2
Original line number Original line Diff line number Diff line
@@ -209,8 +209,6 @@ void intel_uc_fini_wq(struct drm_i915_private *dev_priv)
	if (!USES_GUC(dev_priv))
	if (!USES_GUC(dev_priv))
		return;
		return;


	GEM_BUG_ON(!HAS_GUC(dev_priv));

	intel_guc_fini_wq(&dev_priv->guc);
	intel_guc_fini_wq(&dev_priv->guc);
}
}