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)
committerAndi Shyti <andi.shyti@kernel.org>
Tue, 18 Mar 2025 20:53:53 +0000 (21:53 +0100)
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
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;