From c14848fa08809920fa60d2713e84b98bcf676a02 Mon Sep 17 00:00:00 2001 From: Adrian Warecki Date: Thu, 29 May 2025 11:51:38 +0200 Subject: [PATCH] module_adapter: Don't propagate ENOSPC and ENODATA error codes Do not pass non-critical ENOSPC and ENODATA error codes from a module processing function to the pipeline. The pipeline will stop and enter xrun recovery if a module processing function returns a non-zero value. Signed-off-by: Adrian Warecki --- src/audio/module_adapter/module/generic.c | 2 +- src/audio/module_adapter/module_adapter.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/audio/module_adapter/module/generic.c b/src/audio/module_adapter/module/generic.c index e15f823ccf2b..f81fd42d3766 100644 --- a/src/audio/module_adapter/module/generic.c +++ b/src/audio/module_adapter/module/generic.c @@ -300,7 +300,7 @@ int module_process_sink_src(struct processing_module *mod, /* reset state to idle */ md->state = MODULE_IDLE; #endif - return ret; + return 0; } int module_reset(struct processing_module *mod) diff --git a/src/audio/module_adapter/module_adapter.c b/src/audio/module_adapter/module_adapter.c index bb0c79144d00..f5a156bec24a 100644 --- a/src/audio/module_adapter/module_adapter.c +++ b/src/audio/module_adapter/module_adapter.c @@ -990,9 +990,12 @@ static int module_adapter_sink_source_copy(struct comp_dev *dev) ret = module_process_sink_src(mod, mod->sources, mod->num_of_sources, mod->sinks, mod->num_of_sinks); - if (ret != -ENOSPC && ret != -ENODATA && ret) { - comp_err(dev, "module_adapter_sink_source_copy() process failed with error: %x", - ret); + if (ret) { + if (ret != -ENOSPC && ret != -ENODATA) + comp_err(dev, "module_adapter_sink_source_copy() process failed with error: %d", + ret); + else + ret = 0; } /* count number of processed data. To be removed in pipeline 2.0 */