diff options
author | Jisheng Zhang <jszhang@marvell.com> | 2013-08-27 00:41:16 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2013-08-28 08:17:44 -0400 |
commit | a8a364bd27cc35c0c879ba4164c4757fa634a58d (patch) | |
tree | e385aece1350d1198a0ba1123f15a4fc42651727 /drivers/pinctrl/mvebu/pinctrl-mvebu.c | |
parent | 03b054e9696c3cbd3d5905ec96da15acd0a2fe8d (diff) |
pinctrl: mvebu: Convert to use devm_ioremap_resource
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>
Diffstat (limited to 'drivers/pinctrl/mvebu/pinctrl-mvebu.c')
-rw-r--r-- | drivers/pinctrl/mvebu/pinctrl-mvebu.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/pinctrl/mvebu/pinctrl-mvebu.c b/drivers/pinctrl/mvebu/pinctrl-mvebu.c index e78c041c3c73..362446508c90 100644 --- a/drivers/pinctrl/mvebu/pinctrl-mvebu.c +++ b/drivers/pinctrl/mvebu/pinctrl-mvebu.c | |||
@@ -593,7 +593,7 @@ static int mvebu_pinctrl_build_functions(struct platform_device *pdev, | |||
593 | int mvebu_pinctrl_probe(struct platform_device *pdev) | 593 | int mvebu_pinctrl_probe(struct platform_device *pdev) |
594 | { | 594 | { |
595 | struct mvebu_pinctrl_soc_info *soc = dev_get_platdata(&pdev->dev); | 595 | struct mvebu_pinctrl_soc_info *soc = dev_get_platdata(&pdev->dev); |
596 | struct device_node *np = pdev->dev.of_node; | 596 | struct resource *res; |
597 | struct mvebu_pinctrl *pctl; | 597 | struct mvebu_pinctrl *pctl; |
598 | void __iomem *base; | 598 | void __iomem *base; |
599 | struct pinctrl_pin_desc *pdesc; | 599 | struct pinctrl_pin_desc *pdesc; |
@@ -605,11 +605,10 @@ int mvebu_pinctrl_probe(struct platform_device *pdev) | |||
605 | return -EINVAL; | 605 | return -EINVAL; |
606 | } | 606 | } |
607 | 607 | ||
608 | base = of_iomap(np, 0); | 608 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
609 | if (!base) { | 609 | base = devm_ioremap_resource(&pdev->dev, res); |
610 | dev_err(&pdev->dev, "unable to get base address\n"); | 610 | if (IS_ERR(base)) |
611 | return -ENODEV; | 611 | return PTR_ERR(base); |
612 | } | ||
613 | 612 | ||
614 | pctl = devm_kzalloc(&pdev->dev, sizeof(struct mvebu_pinctrl), | 613 | pctl = devm_kzalloc(&pdev->dev, sizeof(struct mvebu_pinctrl), |
615 | GFP_KERNEL); | 614 | GFP_KERNEL); |