Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > Trying to drain a workqueue while we may still be adding to it from > background tasks is, according to kernel/workqueue.c, verboten. So, add > a flush_workqueue() at the start of our cleanup procedure. I don't get it. drain_workqueue does it's own flushing. -Mika > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 9d132c9d17b0..d2f9af3a16dc 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -2472,6 +2472,7 @@ static inline void i915_gem_drain_workqueue(struct drm_i915_private *i915) > */ > int pass = 3; > do { > + flush_workqueue(i915->wq); > rcu_barrier(); > i915_gem_drain_freed_objects(i915); > } while (--pass); > -- > 2.20.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx