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); ?
cpu_latency_qos_remove_request(ctx->qos); kfree(ctx->fw_sg_list.src);