Commit f3bcb0cc authored by Chris Wilson's avatar Chris Wilson

drm/i915: Remove obsolete engine cleanup

Remove the outer layer cleanup of engine stubs; as i915_drv itself no
longer tries to preallocate and so is not responsible for either the
allocation or free. By the time we call the cleanup function, we already
have cleaned up the engines.

v2: Lack of symmetry between mmio_probe and mmio_release for handling
the error cleanup. engine->destroy() is a compound function that is
called earlier in the normal release as it ties together other bits of
state.
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190718070024.21781-6-chris@chris-wilson.co.uk
parent 04364138
...@@ -848,15 +848,6 @@ static int i915_workqueues_init(struct drm_i915_private *dev_priv) ...@@ -848,15 +848,6 @@ static int i915_workqueues_init(struct drm_i915_private *dev_priv)
return -ENOMEM; return -ENOMEM;
} }
static void i915_engines_cleanup(struct drm_i915_private *i915)
{
struct intel_engine_cs *engine;
enum intel_engine_id id;
for_each_engine(engine, i915, id)
kfree(engine);
}
static void i915_workqueues_cleanup(struct drm_i915_private *dev_priv) static void i915_workqueues_cleanup(struct drm_i915_private *dev_priv)
{ {
destroy_workqueue(dev_priv->hotplug.dp_wq); destroy_workqueue(dev_priv->hotplug.dp_wq);
...@@ -928,7 +919,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) ...@@ -928,7 +919,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv)
ret = i915_workqueues_init(dev_priv); ret = i915_workqueues_init(dev_priv);
if (ret < 0) if (ret < 0)
goto err_engines; return ret;
intel_gt_init_early(&dev_priv->gt, dev_priv); intel_gt_init_early(&dev_priv->gt, dev_priv);
...@@ -961,8 +952,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) ...@@ -961,8 +952,6 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv)
i915_gem_cleanup_early(dev_priv); i915_gem_cleanup_early(dev_priv);
err_workqueues: err_workqueues:
i915_workqueues_cleanup(dev_priv); i915_workqueues_cleanup(dev_priv);
err_engines:
i915_engines_cleanup(dev_priv);
return ret; return ret;
} }
...@@ -978,7 +967,6 @@ static void i915_driver_late_release(struct drm_i915_private *dev_priv) ...@@ -978,7 +967,6 @@ static void i915_driver_late_release(struct drm_i915_private *dev_priv)
intel_uc_cleanup_early(&dev_priv->gt.uc); intel_uc_cleanup_early(&dev_priv->gt.uc);
i915_gem_cleanup_early(dev_priv); i915_gem_cleanup_early(dev_priv);
i915_workqueues_cleanup(dev_priv); i915_workqueues_cleanup(dev_priv);
i915_engines_cleanup(dev_priv);
pm_qos_remove_request(&dev_priv->sb_qos); pm_qos_remove_request(&dev_priv->sb_qos);
mutex_destroy(&dev_priv->sb_lock); mutex_destroy(&dev_priv->sb_lock);
...@@ -1039,6 +1027,7 @@ static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv) ...@@ -1039,6 +1027,7 @@ static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv)
*/ */
static void i915_driver_mmio_release(struct drm_i915_private *dev_priv) static void i915_driver_mmio_release(struct drm_i915_private *dev_priv)
{ {
intel_engines_cleanup(dev_priv);
intel_teardown_mchbar(dev_priv); intel_teardown_mchbar(dev_priv);
intel_uncore_fini_mmio(&dev_priv->uncore); intel_uncore_fini_mmio(&dev_priv->uncore);
pci_dev_put(dev_priv->bridge_dev); pci_dev_put(dev_priv->bridge_dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment