diff --git a/src/audio/pipeline/pipeline-stream.c b/src/audio/pipeline/pipeline-stream.c index 5fd795e818db..d3cb59026c3f 100644 --- a/src/audio/pipeline/pipeline-stream.c +++ b/src/audio/pipeline/pipeline-stream.c @@ -179,6 +179,11 @@ int pipeline_copy(struct pipeline *p) PPL_LOCK(p->core); + if (!p->source_comp) { + PPL_UNLOCK(); + return 0; + } + if (p->source_comp->direction == SOF_IPC_STREAM_PLAYBACK) { dir = PPL_DIR_UPSTREAM; start = p->sink_comp; @@ -187,6 +192,11 @@ int pipeline_copy(struct pipeline *p) start = p->source_comp; } + if (!start) { + PPL_UNLOCK(); + return 0; + } + data.start = start; data.p = p;