On 3/22/22 10:57, Pierre-Louis Bossart wrote:
On 3/22/22 10:48, Takashi Iwai wrote:
It seems that flush_scheduled_work() is called without any real purpose at sst_context_cleanup() (the driver doesn't put works on the global queue at all). As the flush_schedule_work() function is going to be abolished in near future, let's drop it now.
Cc: Tetsuo Handa penguin-kernel@I-love.SAKURA.ne.jp Signed-off-by: Takashi Iwai tiwai@suse.de
sound/soc/intel/atom/sst/sst.c | 1 - 1 file changed, 1 deletion(-)
diff --git a/sound/soc/intel/atom/sst/sst.c b/sound/soc/intel/atom/sst/sst.c index e21e11dac000..3a42d68c0247 100644 --- a/sound/soc/intel/atom/sst/sst.c +++ b/sound/soc/intel/atom/sst/sst.c @@ -360,7 +360,6 @@ void sst_context_cleanup(struct intel_sst_drv *ctx) sst_unregister(ctx->dev); sst_set_fw_state_locked(ctx, SST_SHUTDOWN); sysfs_remove_group(&ctx->dev->kobj, &sst_fw_version_attr_group); - flush_scheduled_work(); > destroy_workqueue(ctx->post_msg_wq);
It could also be a confusion, there are calls to
flush_workqueue(ctx->post_msg_wq);
for suspend-resume, so wondering if the right sequence could be
flush_workqueue(ctx->post_msg_wq); destroy_workqueue(ctx->post_msg_wq);
?
Never mind, answering to my own question, destroy_workqueue() calls drain_workqueue() which calls flush_workqueue() internally
Acked-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com
cpu_latency_qos_remove_request(ctx->qos); kfree(ctx->fw_sg_list.src);