[PATCH 1/2] ASoC: qcom: qdsp6: q6adm: Finish initializing copp before releasing lock
From: Stephan Gerhold
Date: Thu Apr 03 2025 - 13:37:50 EST
---
sound/soc/qcom/qdsp6/q6adm.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/sound/soc/qcom/qdsp6/q6adm.c b/sound/soc/qcom/qdsp6/q6adm.c
index 1530e98df165..b4879cac76a6 100644
--- a/sound/soc/qcom/qdsp6/q6adm.c
+++ b/sound/soc/qcom/qdsp6/q6adm.c
@@ -408,9 +408,6 @@ struct q6copp *q6adm_open(struct device *dev, int port_id, int path, int rate,
return ERR_CAST(copp);
}
- list_add_tail(&copp->node, &adm->copps_list);
- spin_unlock_irqrestore(&adm->copps_list_lock, flags);
-
kref_init(&copp->refcount);
copp->topology = topology;
copp->mode = perf_mode;
@@ -419,6 +416,9 @@ struct q6copp *q6adm_open(struct device *dev, int port_id, int path, int rate,
copp->bit_width = bit_width;
copp->app_type = app_type;
+ list_add_tail(&copp->node, &adm->copps_list);
+ spin_unlock_irqrestore(&adm->copps_list_lock, flags);
+
ret = q6adm_device_open(adm, copp, port_id, path, topology,
channel_mode, bit_width, rate);
if (ret < 0) {
--
2.47.2