summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2025-11-27 14:50:57 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-01-08 10:14:38 +0100
commitc69790a51b52a2a229c1ad64f2e080b209eb4575 (patch)
tree288cbe43f62f60a416d96669144290d00ada6d14 /sound
parentb56476d8e9d189d202b004408ea40770eff9702b (diff)
downloadlinux-c69790a51b52a2a229c1ad64f2e080b209eb4575.tar.gz
linux-c69790a51b52a2a229c1ad64f2e080b209eb4575.tar.bz2
linux-c69790a51b52a2a229c1ad64f2e080b209eb4575.zip
ASoC: codecs: wcd939x: fix regmap leak on probe failure
commit 86dc090f737953f16f8dc60c546ae7854690d4f6 upstream. The soundwire regmap that may be allocated during probe is not freed on late probe failures. Add the missing error handling. Fixes: be2af391cea0 ("ASoC: codecs: Add WCD939x Soundwire devices driver") Cc: stable@vger.kernel.org # 6.9 Cc: Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by: Johan Hovold <johan@kernel.org> Link: https://patch.msgid.link/20251127135057.2216-1-johan@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/wcd939x-sdw.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sound/soc/codecs/wcd939x-sdw.c b/sound/soc/codecs/wcd939x-sdw.c
index fca95777a75a..e42b0b23b75a 100644
--- a/sound/soc/codecs/wcd939x-sdw.c
+++ b/sound/soc/codecs/wcd939x-sdw.c
@@ -1480,12 +1480,18 @@ static int wcd9390_probe(struct sdw_slave *pdev, const struct sdw_device_id *id)
ret = component_add(dev, &wcd939x_sdw_component_ops);
if (ret)
- return ret;
+ goto err_free_regmap;
/* Set suspended until aggregate device is bind */
pm_runtime_set_suspended(dev);
return 0;
+
+err_free_regmap:
+ if (wcd->regmap)
+ regmap_exit(wcd->regmap);
+
+ return ret;
}
static int wcd9390_remove(struct sdw_slave *pdev)