mfd: mxs-lradc: Fix error handling in mxs_lradc_probe()
authorAlexey Khoroshilov <khoroshilov@ispras.ru>
Fri, 13 Oct 2017 22:06:56 +0000 (01:06 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Dec 2017 09:10:33 +0000 (10:10 +0100)
[ Upstream commit 362741a21a5c4b9ee31e75ce28d63c6d238a745c ]

There is the only path, where mxs_lradc_probe() leaves clk undisabled,
since it does return instead of goto err_clk.

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

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mfd/mxs-lradc.c

index 630bd19..98e732a 100644 (file)
@@ -196,8 +196,10 @@ static int mxs_lradc_probe(struct platform_device *pdev)
        platform_set_drvdata(pdev, lradc);
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!res)
-               return -ENOMEM;
+       if (!res) {
+               ret = -ENOMEM;
+               goto err_clk;
+       }
 
        switch (lradc->soc) {
        case IMX23_LRADC: