Commit e32c8d3c authored by Chris Wilson's avatar Chris Wilson

drm/i915/selftests: Hold task reference to reset worker

As the worker may exit by itself, we need to hold a task reference to it
in the parent.

References: https://bugs.freedesktop.org/show_bug.cgi?id=108735Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181120120601.24083-1-chris@chris-wilson.co.uk
parent 2ac5e38e
...@@ -1150,6 +1150,7 @@ static int __igt_reset_evict_vma(struct drm_i915_private *i915, ...@@ -1150,6 +1150,7 @@ static int __igt_reset_evict_vma(struct drm_i915_private *i915,
tsk = NULL; tsk = NULL;
goto out_reset; goto out_reset;
} }
get_task_struct(tsk);
wait_for_completion(&arg.completion); wait_for_completion(&arg.completion);
...@@ -1172,6 +1173,8 @@ static int __igt_reset_evict_vma(struct drm_i915_private *i915, ...@@ -1172,6 +1173,8 @@ static int __igt_reset_evict_vma(struct drm_i915_private *i915,
/* The reset, even indirectly, should take less than 10ms. */ /* The reset, even indirectly, should take less than 10ms. */
igt_wedge_on_timeout(&w, i915, HZ / 10 /* 100ms timeout*/) igt_wedge_on_timeout(&w, i915, HZ / 10 /* 100ms timeout*/)
err = kthread_stop(tsk); err = kthread_stop(tsk);
put_task_struct(tsk);
} }
mutex_lock(&i915->drm.struct_mutex); mutex_lock(&i915->drm.struct_mutex);
......
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