On 17/07/2019 08:46, Chris Wilson wrote: > Remove the outer layer cleanup of engine stubs; it no longer tries to Who is "it"? > 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. I see: i915_driver_probe { ... ret = i915_driver_early_probe(dev_priv); ... i915_driver_mmio_probe -> intel_engines_init_mmio -> allocates engines ... <later step fails> -> who frees the engines? } Regards, Tvrtko > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.c | 14 +------------- > 1 file changed, 1 insertion(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index 7c209743e478..e1d62ba30612 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -848,15 +848,6 @@ static int i915_workqueues_init(struct drm_i915_private *dev_priv) > 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) > { > destroy_workqueue(dev_priv->hotplug.dp_wq); > @@ -928,7 +919,7 @@ static int i915_driver_early_probe(struct drm_i915_private *dev_priv) > > ret = i915_workqueues_init(dev_priv); > if (ret < 0) > - goto err_engines; > + return ret; > > 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) > i915_gem_cleanup_early(dev_priv); > err_workqueues: > i915_workqueues_cleanup(dev_priv); > -err_engines: > - i915_engines_cleanup(dev_priv); > return ret; > } > > @@ -978,7 +967,6 @@ static void i915_driver_late_release(struct drm_i915_private *dev_priv) > intel_uc_cleanup_early(&dev_priv->gt.uc); > i915_gem_cleanup_early(dev_priv); > i915_workqueues_cleanup(dev_priv); > - i915_engines_cleanup(dev_priv); > > pm_qos_remove_request(&dev_priv->sb_qos); > mutex_destroy(&dev_priv->sb_lock); > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx