From: Laxman Dewangan Date: Wed, 24 Feb 2016 09:14:07 +0000 (+0530) Subject: pinctrl: amd: Use devm_pinctrl_register() for pinctrl registration X-Git-Tag: v4.1.12-124.31.3~350 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=926609356d0374633bb18483e4aa4cc93642a895;p=users%2Fjedix%2Flinux-maple.git pinctrl: amd: Use devm_pinctrl_register() for pinctrl registration Use devm_pinctrl_register() for pin control registration and clean error path. Signed-off-by: Laxman Dewangan Signed-off-by: Linus Walleij (cherry picked from commit 251e22abde21833b3d29577e4d8c7aaccd650eee) Orabug: 27539246 CVE: CVE-2017-18174 Reviewed-by: Shan Hai Signed-off-by: Allen Pais Minor conflict which checks the pointer with IS_ERR macro. Signed-off-by: Brian Maly Conflicts: drivers/pinctrl/pinctrl-amd.c Signed-off-by: Brian Maly --- diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index 7de3b64bf1428..7bf97414072ea 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c @@ -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; }