Hello.
Like commit c4f135d643823a86 ("workqueue: Wrap flush_workqueue() using a macro") explains, we are removing flush_scheduled_work() calls. And now
drivers/gpu/drm/i915/display/intel_display.c drivers/gpu/drm/i915/gt/selftest_execlists.c
are the last flush_scheduled_work() callers which have no patch proposed. I want to make a patch like https://lkml.kernel.org/r/e9b95132-89cd-5cfc-1a09-966393c5ecb0@I-love.SAKURA... but I couldn't understand how to interpret drivers/gpu/drm/i915/ part.
There are many schedule_work()/schedule_delayed_work() callers within drivers/gpu/drm/i915/ directory.
intel_modeset_driver_remove_noirq() in intel_display.c says
/* flush any delayed tasks or pending work */ flush_scheduled_work();
but intel_display.c itself does not call schedule_delayed_work(). Then, does this flush_scheduled_work() mean to wait all schedule_work()/schedule_delayed_work() calls inside drivers/gpu/drm/i915/ directory?
wait_for_reset() in selftest_execlists.c says
flush_scheduled_work();
but selftest_execlists.c itself does not call schedule_work()/schedule_delayed_work(). Then, does this flush_scheduled_work() mean to wait all schedule_work()/schedule_delayed_work() calls inside drivers/gpu/drm/i915/ directory, by sharing a WQ created for intel_modeset_driver_remove_noirq() ?