Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: codecs: wcd939x: fix OF node leaks on probe failure

The component match entry release function will drop the references
taken while looking up the soundwire OF nodes when the platform device
is unbound.

Drop the additional references taken to avoid leaking them on probe
failure (e.g. probe deferral) and on driver unbind.

Fixes: 10f514bd172a ("ASoC: codecs: Add WCD939x Codec driver")
Cc: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Link: https://patch.msgid.link/20251201093419.24474-4-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Johan Hovold and committed by
Mark Brown
3ef4d9ed 32ae6ebe

+1 -2
+1 -2
sound/soc/codecs/wcd939x.c
··· 3526 3526 return -ENODEV; 3527 3527 } 3528 3528 3529 - of_node_get(wcd939x->rxnode); 3530 3529 component_match_add_release(dev, matchptr, component_release_of, 3531 3530 component_compare_of, wcd939x->rxnode); 3532 3531 ··· 3534 3535 dev_err(dev, "%s: Tx-device node not defined\n", __func__); 3535 3536 return -ENODEV; 3536 3537 } 3537 - of_node_get(wcd939x->txnode); 3538 + 3538 3539 component_match_add_release(dev, matchptr, component_release_of, 3539 3540 component_compare_of, wcd939x->txnode); 3540 3541 return 0;