drm/i915: Flush the residual parking on emergency shutdown
On unwinding following a critical failure inside GEM init, we also need to be sure to flush the workers before unloading the module. Testcase: igt/drv_module_reload/basic-reload-inject Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180710094421.16223-1-chris@chris-wilson.co.uk
This commit is contained in:
parent
bf06112f86
commit
8bcf9f7034
|
@ -5550,6 +5550,8 @@ err_init_hw:
|
|||
WARN_ON(i915_gem_suspend(dev_priv));
|
||||
i915_gem_suspend_late(dev_priv);
|
||||
|
||||
i915_gem_drain_workqueue(dev_priv);
|
||||
|
||||
mutex_lock(&dev_priv->drm.struct_mutex);
|
||||
intel_uc_fini_hw(dev_priv);
|
||||
err_uc_init:
|
||||
|
|
|
@ -15847,6 +15847,8 @@ void intel_modeset_cleanup(struct drm_device *dev)
|
|||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
|
||||
flush_workqueue(dev_priv->modeset_wq);
|
||||
|
||||
flush_work(&dev_priv->atomic_helper.free_work);
|
||||
WARN_ON(!llist_empty(&dev_priv->atomic_helper.free_list));
|
||||
|
||||
|
|
Loading…
Reference in New Issue