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@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
---
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@xxxxxxxxxxxxxxx>
cpu_latency_qos_remove_request(ctx->qos);
kfree(ctx->fw_sg_list.src);