]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
pinctrl: amd: Use devm_pinctrl_register() for pinctrl registration
authorLaxman Dewangan <ldewangan@nvidia.com>
Wed, 24 Feb 2016 09:14:07 +0000 (14:44 +0530)
committerBrian Maly <brian.maly@oracle.com>
Wed, 2 Jan 2019 19:51:18 +0000 (14:51 -0500)
Use devm_pinctrl_register() for pin control registration and clean
error path.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit 251e22abde21833b3d29577e4d8c7aaccd650eee)

Orabug: 27539246
CVE: CVE-2017-18174

Reviewed-by: Shan Hai <shan.hai@oracle.com>
Signed-off-by: Allen Pais <allen.pais@oracle.com>
Minor conflict which checks the pointer with IS_ERR
macro.

Signed-off-by: Brian Maly <brian.maly@oracle.com>
Conflicts:
drivers/pinctrl/pinctrl-amd.c

Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/pinctrl/pinctrl-amd.c

index 7de3b64bf1428982572fd981e1cb28a04669ba80..7bf97414072ea5f53da9dfc9051cd45e950acc95 100644 (file)
@@ -787,16 +787,16 @@ static int amd_gpio_probe(struct platform_device *pdev)
        gpio_dev->ngroups = ARRAY_SIZE(kerncz_groups);
 
        amd_pinctrl_desc.name = dev_name(&pdev->dev);
-       gpio_dev->pctrl = pinctrl_register(&amd_pinctrl_desc,
-                                       &pdev->dev, gpio_dev);
-       if (!gpio_dev->pctrl) {
+       gpio_dev->pctrl = devm_pinctrl_register(&pdev->dev, &amd_pinctrl_desc,
+                                               gpio_dev);
+       if (IS_ERR(gpio_dev->pctrl)) {
                dev_err(&pdev->dev, "Couldn't register pinctrl driver\n");
                return -ENODEV;
        }
 
        ret = gpiochip_add(&gpio_dev->gc);
        if (ret)
-               goto out1;
+               return ret;
 
        ret = gpiochip_add_pin_range(&gpio_dev->gc, dev_name(&pdev->dev),
                                0, 0, TOTAL_NUMBER_OF_PINS);
@@ -829,8 +829,6 @@ static int amd_gpio_probe(struct platform_device *pdev)
 out2:
        gpiochip_remove(&gpio_dev->gc);
 
-out1:
-       pinctrl_unregister(gpio_dev->pctrl);
        return ret;
 }
 
@@ -841,7 +839,6 @@ static int amd_gpio_remove(struct platform_device *pdev)
        gpio_dev = platform_get_drvdata(pdev);
 
        gpiochip_remove(&gpio_dev->gc);
-       pinctrl_unregister(gpio_dev->pctrl);
 
        return 0;
 }