]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
pinctrl: mvebu: Convert to use devm_ioremap_resource
authorJisheng Zhang <jszhang@marvell.com>
Tue, 27 Aug 2013 04:41:16 +0000 (12:41 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 28 Aug 2013 12:17:44 +0000 (14:17 +0200)
The resource mapped by of_iomap() isn't unmapped in error path. This
patch fix the resource leakage by using devm_ioremap_resource() instead
of of_iomap().

Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
Reviewed-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Acked-by: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/mvebu/pinctrl-mvebu.c

index e78c041c3c732df9221a87638b85e68687d7e3d7..362446508c90817a4a4d63dc06af3836d5037783 100644 (file)
@@ -593,7 +593,7 @@ static int mvebu_pinctrl_build_functions(struct platform_device *pdev,
 int mvebu_pinctrl_probe(struct platform_device *pdev)
 {
        struct mvebu_pinctrl_soc_info *soc = dev_get_platdata(&pdev->dev);
-       struct device_node *np = pdev->dev.of_node;
+       struct resource *res;
        struct mvebu_pinctrl *pctl;
        void __iomem *base;
        struct pinctrl_pin_desc *pdesc;
@@ -605,11 +605,10 @@ int mvebu_pinctrl_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       base = of_iomap(np, 0);
-       if (!base) {
-               dev_err(&pdev->dev, "unable to get base address\n");
-               return -ENODEV;
-       }
+       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+       base = devm_ioremap_resource(&pdev->dev, res);
+       if (IS_ERR(base))
+               return PTR_ERR(base);
 
        pctl = devm_kzalloc(&pdev->dev, sizeof(struct mvebu_pinctrl),
                        GFP_KERNEL);