Re: [PATCH 1/4] ASoC: stm32: sai: fix device leak on probe

From: Olivier MOYSAN
Date: Tue Nov 25 2025 - 08:37:17 EST


Hi Johan,

Thanks for your fixes.

On 11/24/25 11:49, Johan Hovold wrote:
Make sure to drop the reference taken when looking up the sync provider
device and its driver data during DAI probe on probe failures and on
unbind.

Note that holding a reference to a device does not prevent its driver
data from going away so there is no point in keeping the reference.

Fixes: 7dd0d835582f ("ASoC: stm32: sai: simplify sync modes management")
Fixes: 1c3816a19487 ("ASoC: stm32: sai: add missing put_device()")
Cc: stable@xxxxxxxxxxxxxxx # 4.16: 1c3816a19487
Cc: olivier moysan <olivier.moysan@xxxxxx>
Cc: Wen Yang <yellowriver2010@xxxxxxxxxxx>
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>

Reviewed-by: olivier moysan <olivier.moysan@xxxxxxxxxxx>

---
sound/soc/stm/stm32_sai.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/stm/stm32_sai.c b/sound/soc/stm/stm32_sai.c
index fa821e3fb427..7065aeb0e524 100644
--- a/sound/soc/stm/stm32_sai.c
+++ b/sound/soc/stm/stm32_sai.c
@@ -143,6 +143,7 @@ static int stm32_sai_set_sync(struct stm32_sai_data *sai_client,
}
sai_provider = platform_get_drvdata(pdev);
+ put_device(&pdev->dev);
if (!sai_provider) {
dev_err(&sai_client->pdev->dev,
"SAI sync provider data not found\n");
@@ -159,7 +160,6 @@ static int stm32_sai_set_sync(struct stm32_sai_data *sai_client,
ret = stm32_sai_sync_conf_provider(sai_provider, synco);
error:
- put_device(&pdev->dev);
of_node_put(np_provider);
return ret;
}