pinctrl: samsung: Fix return value check in samsung_pinctrl_get_soc_data()
authorWei Yongjun <weiyongjun1@huawei.com>
Sun, 5 Feb 2017 15:58:49 +0000 (15:58 +0000)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 13 Feb 2017 14:48:18 +0000 (15:48 +0100)
In case of error, the function devm_ioremap() returns NULL pointer not
ERR_PTR(). Fix by using devm_ioremap_resource instead of devm_ioremap.

Fixes: 8b1bd11c1f8f ("pinctrl: samsung: Add the support the multiple IORESOURCE_MEM for one pin-bank")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/samsung/pinctrl-samsung.c

index d601b5303e736c9ff3595b1e68f4f44ef75286b6..f9ddba7decc18563916d5adc118958fad46f0073 100644 (file)
@@ -988,10 +988,9 @@ samsung_pinctrl_get_soc_data(struct samsung_pinctrl_drv_data *d,
 
        for (i = 0; i < ctrl->nr_ext_resources + 1; i++) {
                res = platform_get_resource(pdev, IORESOURCE_MEM, i);
-               virt_base[i] = devm_ioremap(&pdev->dev, res->start,
-                                               resource_size(res));
+               virt_base[i] = devm_ioremap_resource(&pdev->dev, res);
                if (IS_ERR(virt_base[i]))
-                       return ERR_PTR(-EIO);
+                       return ERR_CAST(virt_base[i]);
        }
 
        bank = d->pin_banks;