]> 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>
Wed, 4 Jun 2025 12:41:56 +0000 (14:41 +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 3bd406470940fb3a0821e55e8979e68d9b07675b..affdd94f06aaf031cdf0fb5b2fedb04190304c91 100644 (file)
@@ -1504,7 +1504,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;