Unverified Commit 97af5447 authored by Johan Hovold's avatar Johan Hovold Committed by Mark Brown
Browse files

ASoC: codecs: pm4125: clean up bind() device reference handling



A recent change fixed a couple of device leaks on component bind failure
and on unbind but did so in a confusing way by adding misleading
initialisations at bind() and bogus NULL checks at unbind().

Cc: Ma Ke <make24@iscas.ac.cn>
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20251219142412.19043-1-johan@kernel.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent a0c8ee09
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -1505,10 +1505,6 @@ static int pm4125_bind(struct device *dev)
	struct device_link *devlink;
	int ret;

	/* Initialize device pointers to NULL for safe cleanup */
	pm4125->rxdev = NULL;
	pm4125->txdev = NULL;

	/* Give the soundwire subdevices some more time to settle */
	usleep_range(15000, 15010);

@@ -1624,10 +1620,7 @@ static void pm4125_unbind(struct device *dev)
	device_link_remove(dev, pm4125->rxdev);
	device_link_remove(pm4125->rxdev, pm4125->txdev);

	/* Release device references acquired in bind */
	if (pm4125->txdev)
	put_device(pm4125->txdev);
	if (pm4125->rxdev)
	put_device(pm4125->rxdev);

	component_unbind_all(dev, pm4125);