drm/i915/guc: Add uc_fini_wq in gem_init unwind path
authorSagar Arun Kamble <sagar.a.kamble@intel.com>
Wed, 10 Jan 2018 12:54:16 +0000 (18:24 +0530)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 10 Jan 2018 14:03:10 +0000 (14:03 +0000)
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: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Fixes: 3176ff49bc3e ("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: Michał 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: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/intel_uc.c

index 8bc3283484be22583df553842c45ef47d0bc9f37..1135a77b383ae7eca79d7f801241052039acc356 100644 (file)
@@ -5283,6 +5283,8 @@ err_unlock:
        intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
        mutex_unlock(&dev_priv->drm.struct_mutex);
 
+       intel_uc_fini_wq(dev_priv);
+
        if (ret != -EIO)
                i915_gem_cleanup_userptr(dev_priv);
 
index 907deac6e3fa8c2b46dafedb36b9a4b04461d159..d82ca0f438f5296aebe208d5d50622cecb731a0c 100644 (file)
@@ -209,8 +209,6 @@ void intel_uc_fini_wq(struct drm_i915_private *dev_priv)
        if (!USES_GUC(dev_priv))
                return;
 
-       GEM_BUG_ON(!HAS_GUC(dev_priv));
-
        intel_guc_fini_wq(&dev_priv->guc);
 }