i2c: efm32: fix a failure path in efm32_i2c_probe()
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Fri, 15 Jul 2016 23:36:38 +0000 (02:36 +0300)
committerWolfram Sang <wsa@the-dreams.de>
Tue, 19 Jul 2016 04:23:48 +0000 (06:23 +0200)
There is the only failure path in efm32_i2c_probe(),
where clk_disable_unprepare() is missed.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Fixes: 1b5b23718b84 ("i2c: efm32: new bus driver")
Cc: stable@kernel.org
drivers/i2c/busses/i2c-efm32.c

index 8eff627388777d42b5bbe30199bba9c657387fd8..e253598d764c0d1429e18982a3f8f4a2d32b77a4 100644 (file)
@@ -433,7 +433,7 @@ static int efm32_i2c_probe(struct platform_device *pdev)
        ret = request_irq(ddata->irq, efm32_i2c_irq, 0, DRIVER_NAME, ddata);
        if (ret < 0) {
                dev_err(&pdev->dev, "failed to request irq (%d)\n", ret);
-               return ret;
+               goto err_disable_clk;
        }
 
        ret = i2c_add_adapter(&ddata->adapter);