diff options
| author | Johan Hovold <johan@kernel.org> | 2025-11-27 14:50:57 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-01-08 10:14:38 +0100 |
| commit | c69790a51b52a2a229c1ad64f2e080b209eb4575 (patch) | |
| tree | 288cbe43f62f60a416d96669144290d00ada6d14 /sound | |
| parent | b56476d8e9d189d202b004408ea40770eff9702b (diff) | |
| download | linux-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.c | 8 |
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) |
