]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
i2c: pxa: fix call balance of i2c->clk handling routines
authorVitalii Mordan <mordan@ispras.ru>
Wed, 12 Feb 2025 17:28:03 +0000 (20:28 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:12:35 +0000 (11:12 +0200)
[ Upstream commit be7113d2e2a6f20cbee99c98d261a1fd6fd7b549 ]

If the clock i2c->clk was not enabled in i2c_pxa_probe(), it should not be
disabled in any path.

Found by Linux Verification Center (linuxtesting.org) with Klever.

Signed-off-by: Vitalii Mordan <mordan@ispras.ru>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20250212172803.1422136-1-mordan@ispras.ru
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-pxa.c

index cb69884826739d05705bf5954709d184c8516d9c..4415a29f749b927ce96e54cfbd229e1f48fa8623 100644 (file)
@@ -1503,7 +1503,10 @@ static int i2c_pxa_probe(struct platform_device *dev)
                                i2c->adap.name);
        }
 
-       clk_prepare_enable(i2c->clk);
+       ret = clk_prepare_enable(i2c->clk);
+       if (ret)
+               return dev_err_probe(&dev->dev, ret,
+                                    "failed to enable clock\n");
 
        if (i2c->use_pio) {
                i2c->adap.algo = &i2c_pxa_pio_algorithm;