]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: codecs: pm4125: clean up bind() device reference handling
authorJohan Hovold <johan@kernel.org>
Fri, 19 Dec 2025 14:24:12 +0000 (15:24 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 22 Dec 2025 18:03:10 +0000 (18:03 +0000)
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: Johan Hovold <johan@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://patch.msgid.link/20251219142412.19043-1-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/pm4125.c

index 8bc3b999401975b09f4a83d5139d46eb52d124df..43dcafff6c77157c4598321928a6f29730115fdd 100644 (file)
@@ -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,11 +1620,8 @@ 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);
+       put_device(pm4125->txdev);
+       put_device(pm4125->rxdev);
 
        component_unbind_all(dev, pm4125);
 }